fixed absolute path error

changed absolute file path in whitebox_plugin_generator.py from
f = open("/Users/johnlindsay/Documents/deleteme.txt", 'w')

to
out_dir = os.path.join(os.path.expanduser("~"), "Documents")
if not os.path.exists(out_dir):
    os.mkdir(out_dir)
out_file = os.path.join(out_dir, "deleteme.txt")
f = open(out_file, 'w')

To tell you the truth, given that this script is just something that I through together to automate the writing of the whitebox_tools.py Whitebox API, I never really imagined other people using it very often. So the hard-coding wasn't much of an issue. However, I suppose that it is probably best to have this as a relative path anyhow. There's probably a similar issue in the script used for creating the User Manual. Thanks for the contribution.


Move to GitHub Actions

We're almost done! There are a few repositories like atom-editorconfig, atom-linter-xo, electron-boilerplate and generator-electron with much more complicated build scripts but we're on the home straight now.
Here are some quick links:
PRs
Repositories with a .travis.yml (including archived)

We're almost done! There are a few repositories like atom-editorconfig, atom-linter-xo, electron-boilerplate and generator-electron with much more complicated build scripts but we're on the home straight now.
Here are some quick links:
PRs
Repositories with a .travis.yml (including archived)

Awesome!
For a lot of these, the only difference is that the travis file has a sudo: false, which you can just ignore, as it doesn't change anything. It's just a legacy thing.

Awesome!
For a lot of these, the only difference is that the travis file has a sudo: false, which you can just ignore, as it doesn't change anything. It's just a legacy thing.


Url unescape problem

Hi.
Using this proxy i can not connect Microsoft One Drive.
I captured network traffic using fiddler and i found that there is problem in url unescaping.

First picture is the response and second is request.
As you can see response has location header so it is redirected.
But url in location header and url in redirected request is different.
Url in request is unescaped and "code%20id" is changed "code id".
So it failed to connect Microsoft One Drive.
I think following code cause problem because redirected url is not well-formed so it is unescaped.
            string url;
            if (useUpstreamProxy || isTransparent)
            {
                url = Request.RequestUriString;
            }
            else
            {
                var uri = Request.RequestUri;
                url = uri.IsWellFormedOriginalString() ? uri.PathAndQuery : uri.GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
            }

How can i solve this problem?
Thank you.

This issue is duplicate of #596, please subscribe to that.


VFXEditor Crashes when opening TMB for Eukrasian Diagnosis

Not sure if this is for all the new class skills

fixed a while ago, forgot to close this 👀


Invalid C++ API documentation link

The C++ BUDA API link is broken. On this page: https://docs.tenstorrent.com/tenstorrent/v/tt-buda/api#c-runtime-api It ponts to https://yyz-webservice-02.local.tenstorrent.com/docs/budabackend-docs/. Which is NX domain.

Thanks for bringing this to our attention. I will work on getting this fixed.

We are going through some internal changes to our documentation pipeline and hope to have the backend API reference published by mid June. In the meantime I am seeing if I can get it published before we launch the entire pipeline. Appreciate your patience here.


Reborn PPU (sprite, scrolling, etc..)

🔥 Motivation
current status 😭

sprite
scrolling

📖 Reference
I will change nes-ppu.el referring to https://github.com/fogleman/nes

I did it GH-2


Loading the i915 module hangs the linuxPackages_5_7.kernel on Haswell era hardware

Describe the bug
When i915 module is loaded (e.g. during boot) the kernel hangs and does not react to input. The only way out is to power cycle.
To Reproduce
Steps to reproduce the behavior:

Grab haswell era hardware (Intel CPUs in 4000 series)
Update to a 5.7 kernel through e.g. unstable-small channel
Reboot

Expected behavior
Boot should succeed.
Screenshots
N/A
Additional context
It appears that the hang happens regardless of when the i915 is loaded. If loading of this module, or more precisely modesetting, is prevented with the nomodeset argument, the kernel won’t hang.
Booting with intel_iommu=on argument set also makes the boot succeed.
This bug report is primarily here to block propagation of the 5.7 kernel out of the unstable channel.
Notify maintainers
@thoughtpolice
Metadata

system: "x86_64-linux"
host os: Linux 5.7.19, NixOS, 20.09pre242124.8c7ed979b98 (Nightingale)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.7
channels(root): "nixos-20.09pre242124.8c7ed979b98"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: thoughtpolice
# a list of nixos modules affected by the problem
module: boot

I have 2 haswell machines that have been using several versions of the 5.7 kernel with the i915 and modesetting without any issues what to ever.

Related reports elsewhere:
https://bbs.archlinux.org/viewtopic.php?id=258530
https://bbs.archlinux.org/viewtopic.php?id=256520
Seems like another requirement might be booting into kernel with an EFI framebuffer.

Yep, also here:
Sep 07 08:28:02 dolores kernel: fb0: switching to inteldrmfb from EFI VGA
Sep 07 08:28:02 dolores kernel: Console: switching to colour frame buffer device 240x67


Support parenthesis in when clause in wrapper keybindings generator

I've found that parenthesis support has been introduced as part of the when clause context from VS Code 1.77.
https://github.com/microsoft/vscode/issues/175540
If parentheses are used in the default keybindings or any keymap extensions that we support, this extension will require changes to support them in wrapper generator scripts described in below:
https://github.com/tshino/vscode-kb-macro/blob/main/DESIGN.md#default-keybindings-wrappers

This extension defines a large set of keybindings to capture all the default keyboard shortcuts of VS Code.
The list of default keybindings wrappers is defined in the package.json of this extension. The list is automatically generated by a script generator/gen_wrapper.js. The script takes three keybindings JSON files where each one containing the default keybindings of VS Code for Windows, Linux, and macOS respectively, and combines all the keybindings in them with additional context such as isWindows, isLinux, or isMac as needed, and convert them to wrappers and write them into keybindings section of the package.json.

In order to generate the wrapper keybindings, it is needed to tweak the every when context. And in the test, we need to analyze them to verify that the result should work. And those functionalities have been implemented based on the good old when clause which was much simpler to be parsed than now. So now we should do some additional work to support the new grammar in the scripts.
At least following functions should be investigated:

addWhenContext(when, context) in gen_wrapper_util.js
negateContext(context) in gen_wrapper_util.js
containsWhenContext(when, context) in verify_wrapper.js
removeWhenContext(when, context) in verify_wrapper.js
joinComplementalKeybindings(keybindings) in verify_wrapper.js

A keymap extension that is possibly about to introduce parentheses: (Thankfully, this made me aware of the issue. 😂)

https://github.com/whitphx/vscode-emacs-mcx/pull/1679

Done!


Make Konnect license sync period(s) configurable

Is there an existing issue for this?

[X] I have searched the existing issues

Problem Statement
Currently, the 12h period for polling the license from Konnect is hardcoded. We'd like to make it configurable via a flag to allow a quicker reaction to a new license provisioning (e.g. in the case a user upgrades from the free to the enterprise tier).
Proposed Solution

Add a new CLI flag --konnect-license-poll-initial-period with a default set to 1m
Add a new CLI flag --konnect-license-poll-period with a default set to 12h
Use the value of --konnect-license-poll-initial-period to poll the license until it's received, then switch to --konnect-license-poll-period (e.g. a user stays on the free tier -> we continuously poll with the initial period and get 404 in response; when the user upgrades to plus or enterprise -> we get 200, cache the license locally and switch to polling with the regular period.

Additional information
No response
Acceptance Criteria

[ ] As a user I can modify the Konnect license polling period using CLI flags or environment variables
[ ] KIC distinguishes an initial and a regular Konnect license polling periods where the initial one is used until a license is successfully fetched, and the regular one afterward

It's blocked by changes on the Koko side KOKO-1076.


k3s_1_23: remove

k3s_1_23: remove

We should come up with some criteria to decide which k3s versions to have. Do they have a support matrix?

From Kubernetes: https://endoflife.date/kubernetes
Discussion on multiple versions: #214026

@Mic92 Do you want me to add a comment with that information to top-level (where versions are listed)?

Ideally we wouldn't have releases that go EOL during the upcoming 23.05 release either.

Ideally we wouldn't have releases that go EOL during the upcoming 23.05 release either.

What do you mean?

Ideally we wouldn't have releases that go EOL during the upcoming 23.05 release either.

I don't know if I understand what you mean.
No version is going EOL before 23.05 but version 1.23 of K3s.
Stable is not affected by changes here. Just don't port PRs removing versions?

Ideally we wouldn't have releases that go EOL during the upcoming 23.05 release either.

I don't know if I understand correctly. No version is going EOL before 23.05 but version 1.23 of K3s. Stable is not affected by changes here. Assuming removal changes aren't ported to stable.

Yes because we wouldn't want to remove k3s versions it would be nice not to have them in the release in the first place. This way users can be sure they don't end up running an unsupported version at the end of the nixos release.

NixOS's users need to migrate to the latest version provided during a release to ensure the security of their deployment anyway, so what's the big deal?

@mweinelt the complexity comes from how k8s expects users to upgrade unfortunately. Kubernetes only supports n-1 version skew between its various components, including apiserver and kubelet nodes, and naturally the components generally can't be updated at the same time without downtime.
Hypothetically, if someone is on k3s 1.26 on nixos release 23.05, and they wish to upgrade to nixos release 23.11, the only way they can safely do that operation without downtime is if 23.11 has 1.26 or 1.27. That's the supported version skew.
The supported set of k3s versions when 23.11 releases will likely be 1.27-1.29. If we only have 1.29, then there's no supported path to upgrade your k3s nodes from the 23.05 to 23.11 releases.
The above was the original argument for including all supported k3s versions when possible: without it, there's not really a supported path for upgrading unless you stick to only nixos unstable.

We can backport new versions into the stable release to allow in-release upgrades, without updating the default. Would that help? That would be preferable to keeping old versions around.

remove superherointj as maintainer

It's of course your choice, but I'm sad to see you step down all the same. Thanks for all the help you've been shepherding this package along and helping me.
I'm sure we'd be happy to have you around more if you have time and inclination again.
Thanks again for all the help

@mweinelt
I agree that that flow makes sense as one possible resolution, but I think that flow still would mean we'd keep all supported versions on unstable, and then only trim when we cut actual release branches.
To illustrate, let's again consider a 23.11 release, and let's assume we cut it with only k3s 1.29.
For someone to successfully upgrade from 23.05, originally cut with k3s 1.26, that means we would have had to backport 1.27 and 1.28 to 23.05.
If we backport those to 23.05, that means we also have a duty to backport further patch releases to those minor releases as long as they're supported, not the least of which because sometimes patch releases fix bugs in upgrading to the next release.
To backport those patch releases, I think that means we'd realistically want to also be maintaining those on unstable.
So, in that scenario, we'd have:
23.05 -- 1.26 (original release version), 1.27 (backported), 1.28 (backported)
23.11 -- 1.29 (original release version)
unstable -- 1.27 (as long as it's supported, so we can backport to 23.05), 1.28 (ditto), 1.29 (for backporting to 23.11
Does that seem like a reasonable option? Is there a better way to handle this?

We can always track all supported version on master until they run out of support
On stable branches we can only ever keep versions around that survive the end of the release.
All versions on all branches need to be maintained with updates (bugfixes, security issues, etc.) anyway.
I imagine the cycle like this:

We currently have 1.25 on NixOS 22.11. This means we need everything down to 1.26 in NixOS 23.05
for users to be able to upgrade.
Right now this means:

We have NixOS 22.11 with just 1.25
We are going to have NixOS 23.05 with 1.26, 1.27, 1.28, 1.29 to support updates

Everything except 1.29 will be EOL by the end of 23.05 :cry:

Then we change the paradigm. Backport new k3s versions into the old release, and don't cut a new
NixOS release with versions we cannot support. Communicate via the release notes, that users
need to upgrade to the latest version on the old release, before upgrading.
This means:

Backport e.g., 1.30, 1.31, 1.32 into NixOS 23.05 so users can upgrade on the old release
Mark unsupported versions with meta.knownVulnerabiltiies on the stable release, once they've reached their end of life

So that users notice they need to upgrade to a newer release

Remove end of life versions on master regularly
Launch NixOS 23.11 with just (for example) 1.33, since the previous NixOS release got backports up to 1.32

because 1.32 is not supported throughout the NixOS 23.11 release cycle

Releases past 1.29 are obviously fictional and I haven't looked into and don't know the release cycle or end of life dates right now.

@mweinelt based on #224122 closing this, I think it's best to leave this one closed.
I'll pick this up and carry it forward as separate PRs (as time allows, should be in the next couple days!), and I'll ping you on those PRs to make sure it all still makes sense to you.
Thanks for the guidance here so far!
My current action items here (which will be each their own PRs)

[ ] Remove 1_23, it's not supported upstream
[ ] Document the reasoning for how k3s is versioned (as discussed above), and modify whatever release-process checkboxes I can find to make sure this happens appropriately.

I've got a separate action item to make it so maintaining multiple k3s versions requires only one default.nix + a generated versions.json file rather than duplicated default.nix files, but that one isn't new, and I can't promise I'll get to it anytime soon.


it seems that the program cannot run successfully.

When the program example.py is executed, an error is reported, and it seems that the program cannot run successfully.

Hi,
I suspect this issue comes from an old pytorch version with a different interface to the function where. Which is your pytorch version? Could you try upgrading to the latest?

Same problem using pytorch == 1.0.1

Yes I can confirm that this is an issue with the where function from older pytorch versions. According to the pytorch documentation the torch.where(condition) has been introduced only with pytorch 1.2.0. I cannot exclude that there might be further compatibility issues even after fixing this.
The older version of where performs a fundamentally different functionality, so trying to support older versions of pytorch would imply quite a complete refactoring in the way indices are managed in the core of AdaLAM.
The current implementation is tested only under the environment specified with adalam.yml, but it's still good to know some lower bounds in versions of the packages in use.
For now I am closing the issue, feel free to re-open for further discussion!


Expose support for non-returning atomic FADD.

Closing this since this will be handled in rocm-device-libs for now.


Performance problem with LineCharts

Hi, i am making a Coronatracker app.
I am implementing a LineChart Widget with the Data for each day.

The maxY is equal to the tracked days (number of days since 22nd January)
The maxX is equal to the highest number of confirmed cases divided by 100000 (working with the absolute number took the chart forever to build)
Everything works as intended, but it impacts the smoothness of the scrolling of the singlechildscrollview, in which the chart is implemented.
Do you have any suggestions ?

Hi,
If you provide a reproducible code, it helps us to find out what's going on.
I don't have any idea without reading the code and seeing the sample
Thanks!

class LineChartSample1 extends StatefulWidget {
  final List<Day> dayList;
  final formatter = new NumberFormat('#,###,###');
  LineChartSample1(this.dayList);

  @override
  State<StatefulWidget> createState() => LineChartSample1State();
}

class LineChartSample1State extends State<LineChartSample1> {
  double _lineWidth = 4;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return AspectRatio(
      aspectRatio: 1.23,
      child: Container(
        decoration: BoxDecoration(
          borderRadius: BorderRadius.all(Radius.circular(18)),
        ),
        child: Stack(
          children: <Widget>[
            Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                Expanded(
                  child: Padding(
                    padding: EdgeInsets.fromLTRB(10, 20, 20, 20),
                    child: LineChart(
                      sampleData1(),
                      swapAnimationDuration: Duration(milliseconds: 250),
                    ),
                  ),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }

  LineChartData sampleData1() {
    return LineChartData(
      lineTouchData: LineTouchData(
        touchTooltipData: LineTouchTooltipData(
          getTooltipItems: (List<LineBarSpot> barSpots) {
            String date = widget.dayList[barSpots[0].spotIndex].date;
            List<String> temp = date.replaceAll('-', ' ').split(' ');
            temp[1].length != 2 ? temp[1] = '0${temp[1]}' : 0;
            temp[2].length != 2 ? temp[2] = '0${temp[2]}' : 0;
            String usedDate =
                DateFormat('d MMMM').format(DateTime.parse(temp[0] + temp[1] + temp[2]));

            String confirmed =
                widget.formatter.format(widget.dayList[barSpots[0].spotIndex].confirmed).toString();
            String recovered =
                widget.formatter.format(widget.dayList[barSpots[2].spotIndex].recovered).toString();
            String deaths =
                widget.formatter.format(widget.dayList[barSpots[1].spotIndex].deaths).toString();
            LineTooltipItem dateItem = LineTooltipItem(
                usedDate,
                kTitleTextstyle.copyWith(
                    color: Colors.grey,
                    fontSize: 15,
                    fontFamily: GoogleFonts.iBMPlexSans().fontFamily));
            LineTooltipItem confirmedItem = LineTooltipItem(
                confirmed,
                kTitleTextstyle.copyWith(
                    color: kInfectedColor,
                    fontSize: 15,
                    fontFamily: GoogleFonts.iBMPlexMono().fontFamily,
                    fontWeight: FontWeight.w600));
            LineTooltipItem recoveredItem = LineTooltipItem(
                recovered,
                kTitleTextstyle.copyWith(
                    color: kRecovercolor,
                    fontSize: 15,
                    fontFamily: GoogleFonts.iBMPlexMono().fontFamily,
                    fontWeight: FontWeight.w600));
            LineTooltipItem deathsItem = LineTooltipItem(
                deaths,
                kTitleTextstyle.copyWith(
                    color: kDeathColor,
                    fontSize: 15,
                    fontFamily: GoogleFonts.iBMPlexMono().fontFamily,
                    fontWeight: FontWeight.w600));
            return [dateItem, confirmedItem, recoveredItem, deathsItem];
          },
          tooltipBgColor: kBackgroundColor,
        ),
        touchCallback: (LineTouchResponse touchResponse) {},
        handleBuiltInTouches: true,
      ),
      gridData: FlGridData(
        horizontalInterval: widget.dayList.last.confirmed < 500000 ? 1.0 : 5.0,
        show: true,
      ),
      titlesData: FlTitlesData(
        bottomTitles: SideTitles(
          showTitles: true,
          reservedSize: 22,
          textStyle: TextStyle(
              color: Color(0xff72719b),
              fontWeight: FontWeight.bold,
              fontSize: 16,
              fontFamily: GoogleFonts.iBMPlexSans().fontFamily),
          margin: 10,
          getTitles: (value) {
            switch (value.toInt()) {
              case 11:
                return 'February';
              case 40:
                return 'March';
              case 72:
                return 'April';
            }
            return '';
          },
        ),
        leftTitles: SideTitles(
          showTitles: true,
          textStyle: TextStyle(
              color: Color(0xff75729e),
              fontWeight: FontWeight.bold,
              fontSize: 14,
              fontFamily: GoogleFonts.iBMPlexSans().fontFamily),
          getTitles: (value) {
            switch (value) {
              case 1:
                return '100k';
              case 5:
                return '500k';
              case 10:
                return '1M';
              case 15:
                return '1.5M';
              case 20:
                return '2M';
              case 25:
                return '2.5M';
              default:
                return '';
            }
          },
          margin: 8,
          reservedSize: 30,
        ),
      ),
      borderData: FlBorderData(
        show: false,
        border: const Border(
          bottom: BorderSide(
            color: Color(0xff4e4965),
            width: 4,
          ),
          left: BorderSide(
            color: Colors.transparent,
          ),
          right: BorderSide(
            color: Colors.transparent,
          ),
          top: BorderSide(
            color: Colors.transparent,
          ),
        ),
      ),
      minX: 0,
      maxX: widget.dayList.length.toDouble(),
      maxY: widget.dayList.last.confirmed / 100000,
      minY: 0,
      lineBarsData: _createData(widget.dayList),
    );
  }

  List<LineChartBarData> _createData(List<Day> raw) {
    LineChartBarData confirmedData = LineChartBarData(
      spots: List.from(raw.map((e) {
        double index = raw.indexOf(e).toDouble();
        return FlSpot(index, e.confirmed / 100000);
      })),
      isCurved: true,
      colors: [
        kInfectedColor,
      ],
      barWidth: _lineWidth,
      isStrokeCapRound: true,
      dotData: FlDotData(
        show: false,
      ),
      belowBarData: BarAreaData(
        show: false,
      ),
    );
    LineChartBarData recoveredData = LineChartBarData(
      spots: List.from(raw.map((e) {
        double index = raw.indexOf(e).toDouble();
        return FlSpot(index, e.recovered / 100000);
      })),
      isCurved: true,
      colors: [
        kRecovercolor,
      ],
      barWidth: _lineWidth,
      isStrokeCapRound: true,
      dotData: FlDotData(
        show: false,
      ),
      belowBarData: BarAreaData(
        show: false,
      ),
    );
    LineChartBarData deathsData = LineChartBarData(
      spots: List.from(raw.map((e) {
        double index = raw.indexOf(e).toDouble();
        return FlSpot(index, e.deaths / 100000);
      })),
      isCurved: true,
      colors: [
        kDeathColor,
      ],
      barWidth: _lineWidth,
      isStrokeCapRound: true,
      dotData: FlDotData(
        show: false,
      ),
      belowBarData: BarAreaData(
        show: false,
      ),
    );
    LineChartBarData dateData = LineChartBarData(
      spots: List.from(raw.map((e) {
        double index = raw.indexOf(e).toDouble();
        return FlSpot(index, 0);
      })),
      isCurved: true,
      colors: [
        Colors.transparent,
      ],
      barWidth: _lineWidth,
      isStrokeCapRound: true,
      dotData: FlDotData(
        show: false,
      ),
      belowBarData: BarAreaData(
        show: false,
      ),
    );
    return [confirmedData, recoveredData, deathsData, dateData];
  }
}

To Reproduce
Provide us a completely reproducible code (contains the main function) in a file, it helps us to find the bug immediately.

I met same thing - all you need is scale chart date and just show right numbers - than it will work fine

Im sorry, i don't quite understand. Can you please elaborate ?

Im sorry, i don't quite understand. Can you please elaborate ?

Looks like with bigger number chart will draw more points. I suppose if 96k on y axis it draws at least 96k times, so you can try to descale your chart so you can draw from 0 to 96 instead of 0 to 96k and show user the number multiplied by 1k. So at the very top of the chart you will have for example point (6, 96), and you may show you see the point (6, 96k) it will work, an your chart will not be laggy. I use maximum up to 100 points for each axis and it works perfectly.
P. S. The chart by it own may have up to a 100 maximum on x and on y, and you just fit you point in this value

To Reproduce
Provide us a completely reproducible code (contains the main function) in a file, it helps us to find the bug immediately.

Hi, i uploaded the app, please take a look. Hope this helps : https://github.com/Wizzel1/corona

@imaNNeoFighT was the repo helpful to you ?

Hi, I didn't have time to check it and apologize,
I will check it ASAP.
Thanks!

It doesn't help me,
please simplify your problem.
Thanks!

I can confirm that there's definitely a performance problem with line charts working with dates in milliseconds. I divided also by 100000 to get it running. But with increasing points, it has difficulties to build, sometimes it's building until it crashes the whole app.
Trying to provide an example soon.

I've created a sample chart in examples at my forked repo: https://github.com/igoriuz/fl_chart
This is just a proof of concept. If you wish, i can extend this sample and improve it with further logic (like calculating min/max with small offsets and doing everytime N intervalls etc.)
If you turn useRawMilliSeconds to true, dates won't be divided through 100000 and you'll see the crashing behaviour.
Just for some context: Theres a dummy object which holds the date in milliseconds for the x axis and a temperature value for the y axis. For each day i just create one FlSpot. This means for last 7 days, there are just 7 spots. This example works really well unless you turn useRawMilliSeconds to true.

Hi @igoriuz
Thanks for the explanation,
where you did create that sample?
I mean in which file

All these three files from this commit: https://github.com/igoriuz/fl_chart/commit/e1ce52b1b522e5f7781aca1607f142ef51e97d79

Okay I'm on it.

I'm unsure but i think i noticed that LineCharts can't work with null values for y axis. Thank you very much!

Hi,
We've just released 0.10.0 version,
please check it out and let me know whether it is fixed or not.
Thanks!

It fixed my problem. Thank you very much.

You're welcome.
Cheers!

@imaNNeoFighT yes, way better !

Great,
If you think this issue is solved, please close it.
Thanks!


C++ gflags support: tolerate macros [phab:D657]

Created by zarko at 2015-12-16 00:53:22:
Extra macro expansions (like those introduced by stdbool.h)
can confuse gflags support. This diff attempts to solve that
problem by looking in an additional place in the macro expansion
chain for evidence that a flag's token paste came from gflags.

shahms wrote at 2015-12-16 00:56:33:
Thanks for tracking this down so quickly!

shahms accepted this revision at 2015-12-16 00:56:33

zarko closed via commit 98b277547611e68f1bfc3e1e338cace010b142c5 at 2015-12-16 00:57:06


[enhancement] provide way to classify list of numbers

i have a list of ~1500 colors to classify for a project
it'd be great if there was a way to programmatically classify a list of numbers, either by uploading a csv or hitting an api

@anarchotechqueer you can use this as an API and write your own abstraction over this.


Use m4.xlarge EC2 instance type.

I want 4 CPU cores.

 You should sign our Contributor License Agreement in order to get your pull request merged.

retest this please


llvm_15: reenable libclang_rt.profile-....a build on musl

This was most likely lost because of a bad merge
Note how a few lines below it is already disabled for useLLVM || bareMetal, so they get the COMPILER_RT_BUILD_PROFILE=OFF flag twice.
Change for LLVM 14 was in https://github.com/NixOS/nixpkgs/pull/191372
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

I notice this when I build pkgsMusl.firefox with PGO enabled


Create Reverse Linked List by Iterative Method

https://github.com/abhpd/hacktoberfest2020/pull/180#issuecomment-711161835


Linux progress, how can I help?

I'm playing around with building druid on linux and got a small sample running based on the gtk fork from bobtwinkles/druid.
The fork hasn't been updated in a 5 months and seems to need some changes to work with the current state in the main druid repo.
What's the plan on moving this forward? Is gtk the way to go and should focus be directed to updating the fork to work with the latest code base, or is there another approach you were thinking about.
I noticed in #90  that @Dmitry-Borodin was also interested in working on linux. Maybe we can collaborate?

There's a lot of interest in Linux. I've expressed a call to action for an owner of the Linux port, but this is a pretty big commitment.
As I said in this Zulip thread:

So I should probably write this in a roadmap somewhere, but here's the deal, and why I have been so squirrelly about this: after I get back from Europe (so mid-June to mid-July) I plan to do a sprint to get UI basics in place: menus, input events nailed down, proper scrolling, multiple windows, file dialogs, incremental present, etc. A lot of that but not all of it is at the shell level. In any case, during that time I'm going to want to be moving fast and breaking stuff.
If somebody wants to commit to keeping Linux in sync, then I'm happy for that to be in-tree. If that doesn't happen, then it's best managed as a downstream fork as I described a bit above. After that sprint, then the coordination issues will be a lot easier, and I'll be much more open to bringing Linux in-tree, even if there's a bunch of stuff that seems like it will need rework later (I think ultimately we don't want a dep on gtk and want everything to be native, but I won't block on that). Also, my thinking is that during the druid sprint, we're not doing a massive amount on the Runebender app, as we'll also be sorting out spline and interpolation math.

As to the question of whether or not to depend on gtk, I think its clear that in the long term we do not want to. But in the shorter term it could be very useful, as otherwise we'd have to write widgets for menus and file pickers and so on, which is considerable work.
This is basically one of the reasons I've been asking for an "owner" role, as somebody who understands the implications needs to be making these decisions and guiding the implementation work. I wish I had the bandwidth, but right now I'm overcommitted, so it has to be on the back burner until somebody steps forward. It's possible ownership could be done as a collaboration between people chipping in, and I'm open to that if it works out. In any case, this issue is a great place for discussion, and I'm happy for any help!

I'm glad someone raised the question, as I really was looking forward seeing and helping a linux port progress. I absolutely understand that linux is not as straight forward as windows or mac, due to its fragmented ecosystem, two different display servers to cover and winit not being an option:

The druid-win-shell layer is primarily an abstraction for displaying a window and receiving events. As such, it is an alternative to winit.

Furthermore the BSDs are also able to run X11 and wayland so the a "linux" platform may not be the appropriate name for it.
I would propose to rather have a "x11" and a "wayland" platform than a "unix" platform for the following reasons:

both display servers use different primitives and concepts
a single platform for both display managers would require another level of abstraction which brings another level of complexity
do one thing and do it proper
x11 users won't be doing much wayland related stuff and the other way round (bold assumption )

I would happily participate in the discussion to get this started and start tinkering once fundamental questions are out of the way.

I agree that the linux landscape with x11 and wayland adds complexity and that eventually a linux version should not depend on gtk.
Today I've been tinkering with the gtk fork to get a feel for the druid code base. All examples compile and run except for ext_event. You can find the code at my fork in the gtk branch.
I'm fairly new to rust so I don't think I'm the right person for an "owner" role yet. But I'm willing to spend some time in the coming weeks/months to keeping the gtk fork up to date and maybe experiment a bit with x11 or wayland.

My personal hunch is that using gtk is a good move in the near-term, and if druid eventually matures into a major tool we can revisit.

maybe experiment a bit with x11 or wayland

if you go for x11, this could be a head start
its a bare bone platform implementation which compiles on linux running x11
and runs in to a panic on WindowBuilder::build()

Most development in recent weeks has been on the muggle branch, not master. That'll change as soon as #94 lands. I don't think that invalidates the existing work, but there are a few more things to fix, such as the migration from WinHandle to WinCtx, details of mouse and key events, and stuff like setting the cursor (which is not totally settled, especially on macOS).
I'm really happy to see this work, and if there's a branch that looks good I'm willing to designate it an official downstream branch. My main hesitation is blocking changes to master on Linux support, as we're finding that supporting two platforms is already plenty of a challenge. I expect the changes at the very lowest level will start stabilizing before long, but unfortunately not very soon. Coming up soon we've still got multiple windows, pop-up menus, and some related platform stuff.

An official downstream branch would help aggregate contributions and avoid a situation with multiple competing forks. It might also help with directing new contributors to the right place. There is still some work and cleanup to be done before the gtk fork is ready for that.
This weekend I'm wrapping my head around the WinHandler/WinCtx changes and give it a shot at implementing them.
I have some time available in the next few weeks, I'll keep an eye on upstream changes and try to keep up in the gtk fork.

Can we close this issue now since https://github.com/xi-editor/druid/pull/151 has landed?


flutter build web assets missing

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create a flutter app

flutter create my_app
cd my_app

Create assets directory and add image

mkdir assets
cd assets
wget --output-document=flutter-logo.png https://storage.googleapis.com/cms-storage-bucket/c823e53b3a1a7b0d36a9.png

Add asset to pubspec

cd ..
echo 'assets:\n    - assets/' >> ./pubspec.yaml
flutter pub get # I don't image this is necessary, but I always run this when pubspec changes

Use the asset in the project

Image(image: AssetImage('flutter-logo.png'))

Run the project in web mode. Note that the image will show up.

flutter run -d chrome

Build the project for web

flutter build web

Serve the bundle. For local demo, we'll be using the serve npm package.

npm i -g serve # skip if installed
cd build/web
npx serve

Note that the image will not show up.

If you want all those steps in one file - here you go
flutter create my_app
cd my_app
mkdir assets
cd assets
wget --output-document=flutter-logo.png https://storage.googleapis.com/cms-storage-bucket/c823e53b3a1a7b0d36a9.png
cd ..
echo 'assets:\n    - assets/' >> ./pubspec.yaml
flutter pub get
string=$(cat << EOF

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Noah\'s thorough PR Demo',
      home: const Image(image: AssetImage('flutter-logo.png')),
    );
  }
}

EOF
)
echo $string  > ./lib/main.dart
flutter run -d chrome

Then, once you've seen it running there:
flutter build web
npm i -g serve
cd build/web
open http://localhost:3000
npx serve

Expected results
I expect that the outputs of flutter build web to match flutter run, especially in the handling of assets.
Actual results
Behavior has differed for me.
In the case of this example, the asset flutter-logo.png isn't in the output build/web directory.  It's available in the ./assets folder, but nowhere inside build/web/

Code sample
Code sample
See the steps to reproduce in order to see the full error.
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Noah\'s thorough PR Demo',
      home: const Image(image: AssetImage('flutter-logo.png')), // This asset is visible while `flutter run`, but not while `flutter build web`
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Running locally flutter run on chrome

Console error in chrome for the built version

The file is present in the assets folder, but not in the build:

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.13.2, on macOS 13.0 22A380 darwin-x64, locale en-US)
    • Flutter version 3.13.2 on channel stable at /Users/noahtatko/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff5b5b5fa6 (9 days ago), 2023-08-24 08:12:28 -0500
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/noahtatko/Library/Android/sdk
    • Platform android-33, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.76.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.70.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 116.0.5845.140

[✓] Network resources
    • All expected network resources are available.

• No issues found!```

</details>

Edit - for thoroughness, I was checking spacing, and verifying that both absolute references and folder-based references to the asset in `pubspec.yaml` also failed.

Hi @ntatko, I think this might be a duplicate of https://github.com/flutter/flutter/issues/86833.
Can you take a look at the issue linked above to see if it is similar to your case?
Thank you

You're right, it does look like a duplicate.


Using Idempotent Retryable Codes by Default

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes https://github.com/googleapis/java-dialogflow/issues/193 ☕

@Gknoblau Could you sign the CLA? and update your commit message according to conventionalcommits.org?

@googlebot I signed it!

Looks like it has fixed in the latest release.


CAN.h include issue for ESP32

Hello, great library. Thank you for developing and providing it!
I ran into an issue using this library with an Adafruit HUZZAH32 - ESP32 Feather (https://learn.adafruit.com/adafruit-huzzah32-esp32-feather/overview). When compiling, CAN.h could not be found. I made the following modifications to your library to get the software to compile and run:
openmvrcp.h
11: #if !defined(ARDUINO_ARCH_ESP8266) && !defined(ARDUINO_ARCH_ESP32) && !defined(ARDUINO_ARCH_NRF52840)
220: #if !defined(ARDUINO_ARCH_ESP8266) && !defined(ARDUINO_ARCH_ESP32) && !defined(ARDUINO_ARCH_NRF52840)
openmvrcp.cpp
680: #if !defined(ARDUINO_ARCH_ESP8266) && !defined(ARDUINO_ARCH_ESP32) && !defined(ARDUINO_ARCH_NRF52840)
With those changes, the software compiles and runs correctly. I do not know whether this is an issue for all ESP32s since I have only tested with the Adafruit feather. Further, there are CAN libraries for ESP32 (such as https://github.com/miwagner/ESP32-Arduino-CAN) that provide CAN.h, so that could be used as a dependency instead of removing the CAN support in your library like I did.
Either way, I just wanted to alert you to this since you likely have not had a chance to test with an ESP23 Feather yet.
Thank you!

Same problem on STM32 Arduino.
May be It's better to add a switch macro like ENABLE_CAN:
#ifdef ENABLE_CAN
#include <CAN.h>
#endif

If this is acceptable, I can make a PR.

Hi, this has been fixed.


Training details of the RoBERTa model on the ReCoRD dataset

I read the issue #1598 and the updated paper of the RoBERTa model, and would like to ask questions regarding the training details on the ReCoRD dataset.
The paper mentions as follows:

during training we adopt a pairwise ranking formulation with one negative and positive entity for each (passage, query) pair. At evaluation time, we pick the entity with the highest score for each question.

Which PyTorch loss function is used to implement the pairwise ranking formulation? If the loss function involves hyper-parameters, what are the exact values of them?
An example in the ReCoRD dataset typically has multiple positive and negative entities. When iterating the examples, how does the model select the positive and the negative entity? Does the model select a random entity? If so, for each epoch, how many positive and negative entity pairs are sampled from an example?
What are the hyper-parameters (i.e., learning rate, max epochs) used to train the ReCoRD model?

We are still using nll_loss from pytorch, something like following, where net_input1 is context concatenated with answer candidate 1 and net_input2 is with answer candidate 2 :

        features1, extra1 = model(**sample['net_input1'], features_only=True)
        features2, extra2 = model(**sample['net_input2'], features_only=True)

        logits1 = model.sentence_classification_head(features1)
        logits2 = model.sentence_classification_head(features2)

        logits = torch.cat([logits1, logits2], dim=1)
        targets = model.get_targets(sample, [logits]).view(-1)
        sample_size = targets.numel()

        loss = F.nll_loss(
            F.log_softmax(logits, dim=-1, dtype=torch.float32),
            targets,
            reduction='sum',
        )

All possible negative and positive pairs are selected. There's no sampling happening. I think, this results in ~1.4M samples per epoch.

We use lr=1e-5, bsz=32, we also use dropout=0.2 in  classification_head.

Let me know, if some details are unclear

@ngoyal2707 Thank you for your prompt reply!

All possible negative and positive pairs are selected. There's no sampling happening. I think, this results in ~1.4M samples per epoch.

Does this mean that, given an example, all combinations of positive and negative answers are selected? For example, if the example contains two positive answers A and B, and two negative answers C and D, are all combinations, namely (A, C), (A, D), (B, C), (B, D) generated from the example? If so, are all generated positive-negative pairs treated as independent training instances that are shuffled during training?


feat: save waveform data to file in json format

As pointed out in this issue, loading audio files on Android can take quite some time.
Therefore, while waiting to fix the Android performance issue and be able to read more and more audio files piling up, it would be better to save the waveform to files and read it instead of continuously extracting it from the file.
One evident scenario is opening and scrolling multiple text conversations where we can have plenty of audio files.
This PR provides this capability where we save the extracted waveform of the audio file to the provided waveFormPath. Then, on the next load, we read the JSON data from the file instead of extracting the data live from the audio.
In example/App.tsx, I provided a usage example where we use the item file name and save/read the waveform from the Cache folder with _wf.json. appended to the file name.
Unfortunately, I wanted to save the recorded waveform, but the format differs from the one when reading it from the file, so I left that one out.
I had to integrate react-native-fs for this matter; if needed, I can also switch to rn-fetch-blob, or I could also provide handlers and code this read from/write to file into the App.tsx
Highlights:

[NEW] Add a new prop to the Waveform component for static named waveFormPath that contains the path of the file where to save the extracted waveform data
[BREAKING CHANGES] useAudioRecorder#stopRecording now returns a formatted object based on IStoppedAudioRecordingData instead of two unknown values in an array

Bonuses:

I review onChangeWaveformLoadState to use a default implementation and have a leaner code.
I review stopRecordingAction pauseRecordingAction resumeRecordingAction and remove all the unnecessary Promise.resolve & Promise.reject bloating the code
I moved some API data validation code around the recoding out of Waveform.tsx and moved it into useAudioRecorder.tsx to have a better separation of concerns and have leaner code in the component

Please advise on the formula to move forward!

@dprevost-LMI  This PR is good but my initial plan to move forward is that if we can improve speed of waveform extraction in android that we should explore that route first.

@kuldip-simform I agree. I did that; I requested help with that issue: https://github.com/SimformSolutionsPvtLtd/react-native-audio-waveform/issues/84. In short, I was able to speed up reading mp3 from a post I found, but it completely messed up the waveform, and I'm blocked there.
I even found the possible original code of the Android and asked the owner if he had any idea how to make it work, but so far, I am still waiting. See https://github.com/stefanJi/Android-Audio-Waveform-Generator/issues/2

@dprevost-LMI As mentioned in that issue that MediaCodec is itself slow at processing, I am thinking of exploring ffmpeg for extraction of waveforms. I have not used ffmpeg before so need to look into that.
If you have experience with ffmpeg, feel free to try that to speed up extraction.

We did when we tried this lib with our app and found some other issues. I might explore that! Let's see the time I have 😄

Sorry to chime in out of nowhere.
I was facing issues with Opus Encoding on a .m4a extension for MediaCodec and MediaExtractor (got some crashes). I did rewrite the extractor to use androidx.media3 instead of android.media. This involves instantiating an ExoPlayer to do the work.
The app doesn't crash anymore but I still have slow processing on the waves if the audio is at least bigger than 1 minute. I still think that, saving the amplitude to generate the waves statically is probably faster on re-render. Or at least accept an entry of amplitudes if I don't want to run Media Extract whatsoever (having to use FFMpeg on the backend to generate those instead on the app that could cause OOM issues)

Thanks for chiming in.
After some thinking (@kuldip-simform):

complexity of managing resources
I agree that it does; however, I do not see such a thing for the recording itself, so I interpret that as not a hard requirement but a nice to have. Moreover, my implementation gives flexibility in where and what name to give to files; therefore, library users can manage it if they want, and it is turned off by default, so there is no pollution if not explicitly used.

exploring ffmpeg for extraction of waveforms
I agree that this is a path to explore, but this path has more chances of breaking the current code and causing some instability until we can have a fully proven and functional implementation. The current one is slow but solid, so it is worth providing this alternative.
Also, to have already used FFmpeg, that library limits the number of concurrency audio files you can process. You need to increase the setSessionHistorySize.

So, even with the FFmpeg library, we would need a way not to always extract waveform live each time we render audio files since, for example, if we think of a Facebook conversation that you scroll through, you could trigger hundreds, if not thousands, of waveform extractions!

Or at least accept an entry of amplitudes
Good idea; I could review my implementation to do that and give a "FileProdiver" to use that feature with local files or server data!

@gmantuanrosa

rewrite the extractor to use androidx.media3 instead of android.media
Could it be possible for you to provide either a PR or more details about that in a new issue? That way, we could try to merge that into that repo and share it with everyone!

It seems like this approach does not have a chance to be adopted, so I am closing!


fix: reset the focus of the first item when the list changes

The focus of the first item should be reseted also when the list changes:
  useUpdateEffect(() => {     if (prefocusFirstItem)       setFocusedValue(firstItem?.value);   }, [query, firstItem]);
This happens specially when the source data comes from an API and the list constantly changes.
Fixes: #257

Thank you for the PR.  I had just started working on this when it came through.  I will be doing a release tomorrow with another item and will make sure to give you credit in the release notes.


ColumnDef Meta cannot be declared with pnpm

Describe the bug
When using pnpm as a package manager, @tanstack/table-core is not installed in node_modules, as this is only a dependency of @tanstack/react-table.
As such, this table-core package is not available for the project when declaring the meta as shown in the docs.
For info, pnpm puts only packages listed in package.json in the node_modules directory. For the deps of these packages, they are "hidden" from the project into some symlinked folders.
Your minimal, reproducible example
can't provide due to corporate proxy
Steps to reproduce

Add @tanstack/react-table as a dependency of a project using pnpm.
Try declaring meta as per docs (I had to change the import a bit though).

import type {RowData} from "@tanstack/react-table";

declare module '@tanstack/table-core' {
  interface ColumnMeta<TData extends RowData, TValue> {
    foo: string
  }
}

Expected behavior
As a user, I expected to be able to use Meta directly. However, I must install another package that was not declared (either in the docs or as peer deps).
=> Recommended solution would be to place @tanstack/table-core as a peer deps, flagging it optional. See pnpm docs and npm docs. Also, adding a note in the Meta section of the docs that this optional peer is required to make use of this feature using pnpm and Typescript.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

OS: Windows

react-table version
v8.7.0
TypeScript version
v4.9.4
Additional context
=> As a workaround, I can installed the package manually.
Also, I can // @ts-ignore the lines causing issues (including when using the meta when rendering, since it can't find foo), but I lose Typescript IDE hinting.
Terms & Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

My bad... I see that my mistake was that I did not name the file with *.d.ts.

@sharky98 where did you put your .d.ts file? do you have IDE autocompletion on your custom meta properties?

I just put it somewhere (named types, but the file was in another folder first) in my project folder and the IDE just picked up.


Bite 1274 - redis

to be used with https://github.com/pearsontechnology/bitesize/pull/747

LGTM

LGTM


Upload wheels to PyPI

Binary packages especially should be uploading wheels to PyPI, especially for Windows where getting the correct toolchain set up can be a nightmare and requires the user fetches Gb sized SDK and 'sign' click-through licenses.

We do have a pure python fallback so the compiled version can be skipped.


Multiple SkinnedMesh Detection Not working

Hi Nobnak,
I cannot bake multiple skinned mesh animation just like in your video,
it always resulting only one object.

This functionality is temporary disabled because of the incompatibility between Instancing and Procedural Generated Mesh. Unity team told me that it'll be fixed in Unity 5.5. So I think I'll try to implement this function again on Unity 5.5.

ah i see so that's why.

fixed


Preview: file maxresdefault.jpg missing for some videos

Some videos don't have a maxresdefault.jpg and the preview is missing
This video don't have the maxresdefault.jpg image:
maxresdefault
However, hqdefault.jpg image is available
https://img.youtube.com/vi/JmIZb859q_o/hqdefault.jpg

@franrodriguez123 bud, sorry for the wait, this is resolved in v1.0.19 Cheers 🥂


feat(nr): serde for signed ints

Overview
Adds serde for signed integer types, from #9179
Just adds litle smoke tests for the stuff I've added at the bottom of the file, I can add for all if deemed required

#9211  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Maddiaa0 and the rest of your teammates on  Graphite


Start supporting a callback-based RPC under lock

This change contains 2 parts -

Commit 2553b15 from https://github.com/grpc/grpc/pull/18780 breaks from without the rest of the changes in this PR. This is used to demonstrate the deadlock when callback-based API is called under a lock.
Move the callback execution from grpc_core::ApplicationCallbackExecCtx to Executors using GRPC_CLOSURE.

Can you describe any performance/stability impact by running the internal performance tests?

https://github.com/grpc/grpc/issues/18967


Moving common code for TestCreateTable and TestTruncateTable

TestCreateTable and TestTruncateTable are mostly the same for HBase 1 and HBase 2.  Moving comon code into Abstract* tests in bigtable-hbase-integration-tests-common, and extending in hbase1 and hbase2 test projects.
@pawan-qlogic, FYI.  If this looks good, please comment with "LGTM" (looks good to me).  If it doesn't, please add comments where you think the code can improve.

LGTM


change the input_size for rectangular shape  images

I have rectangular shape images of (100,50), (height, width). how do I set the input_size value ?

The latest version now supports rectangular-shaped images. Please update the code and simply set the "input_size" value in the configuration file to [100, 50].


Vertical windows leakage with bidirectional text

Describe the bug

I have a little problem and a simple solution for when splitting vim into two horizontal windows. If the text is bidirectional, then due to directional runs text from one side may end up in the other side and vice versa
A simple solution is to use directional Isolates. "first strong isolate" before the text and "pop directional isolate" after

To Reproduce
Detailed steps to reproduce the behavior:

Copy this text to a file named "isolate.txt" (source)
لوريم إيبسوم(Lorem Ipsum) هو ببساطة نص شكلي (بمعنى أن الغاية هي الشكل وليس المحتوى) ويُستخدم في صناعات المطابع ودور النشر. كان لوريم إيبسوم ولايزال المعيار للنص الشكلي منذ القرن الخامس عشر عندما قامت مطبعة مجهولة برص مجموعة من الأحرف بشكل عشوائي أخذتها من نص، لتكوّن كتيّب بمثابة دليل أو مرجع شكلي لهذه الأحرف. خمسة قرون من الزمن لم تقضي على هذا النص، بل انه حتى صار مستخدماً وبشكله الأصلي في الطباعة والتنضيد الإلكتروني. انتشر بشكل كبير في ستينيّات هذا القرن مع إصدار رقائق "ليتراسيت" (Letraset) البلاستيكية تحوي مقاطع من هذا النص، وعاد لينتشر مرة أخرى مؤخراَ مع ظهور برامج النشر الإلكتروني مثل "ألدوس بايج مايكر" (Aldus PageMaker) والتي حوت أيضاً على نسخ من نص لوريم إيبسوم.
Open the file in vim vim isolate.txt
Split the view into two vertical windows with ctrl+w v
The vertical separator has shifted and in some cases text can leak to the other side if a directional run was going from left to right then switched to right to left near the vertical separator. This can be seen in the first line, as the first two words on the left "لوريم إيبسوم" are repeated after "(Lorem Ipsum)" in the left side instead of appearing in the right side

Expected behavior
The vertical separator between the windows shouldn't be cross-able and this can be easily implemented using  directional Isolates
Screenshots

Vim

Python proof of concept for solution

Same Python code without the fix

Environment (please complete the following information):

Vim version: 8.2.1490
OS: 5.4.60-2-MANJARO
Terminal: xfce4-terminal <IP_ADDRESS>

Additional context
This is the code for the proof of concept. It's mostly about replicating split window, the fix is near the end in the start + p + end part

Copy/pasting the text, using a normal xterm, I don't see this problem.

For me xterm displays the Arabic characters as empty boxes. Bidirectional text support has been added to many terminals in the past few years.
I have also seen the problem with LXTerminal 0.3.2 and GNOME Terminal 3.36.2
Thanks

In the corresponding tmux issue,

using bidirectional isolates wasn't very stable because it required the whole window to be in either one of the directions so "LEFT-TO-RIGHT ISOLATE" was used instead
Adding the isolates only around the separator was enough as long as they are reversed (pop isolate, separator, LTR isolate)

A workaround for vim is to just use an English letter as the separator without the isolates: set fillchars=vert:l
Then maybe hide it by changing its color to be the same as its background: hi VertSplit ctermbg=White

Here's the result

can you create a documentation PR with some guides about how to resolve this issue?

When using the bidirectional support from the terminal, doesn't Vim get completely confused about the cursor position?
It may be possible to fix how text is displayed, but editing the text is likely to not work.  This would require adding bidirectional support to Vim, which is a huge job.

@chrisbra OK, see #8424
@brammool No it works great actually

vim only sees the memory order of the letters while the terminal handles the transformation to/from the logical order. See the last line in the BiDi draft proposal (The one implemented in VTE based terminals)
Sometimes selected BiDi text maybe look disjoint like this [LLLLLL RRRR [RRRR because we started with the LTR word then continued with the next word which happens to be an RTL that starts from the other side. But that's quite normal and I think it's the case in all BiDi Apps
Even the mouse works well because the terminal sends the character's memory address instead of logical address so the correct character is highlighted


Make binaries executable from anywhere

To support setting a custom working directory when running (docker run -w …).

Thank you!


Add type hints and expose via PEP561

What was wrong?
Type hinting is quite nice.  This library doesn't have it.
How can it be fixed?

Add type hints to the libary
Enforce type hints using mypy as part of the CI run
expose type hints via PEP561

Hi


Migrations support

We'll need to implement IMigrationsCodeGenerator to support adding a new migration.

cc @cartermp (FYI so you can track F# support for this in EF Core)

You may use the C# version as a reference implementation. See CSharpMigrationsGenerator and its subcomponents CSharpMigrationOperationGenerator and CSharpSnapshotGenerator.

I would like to use this, so can I help with something?

@bricelam I'm working on wiring together the different parts of a migration
In C# we get .cs and .Designer.cs created as partial classes
F# doesn't support partial classes and an override can't be used in a type augmentation. Is there any design reason behind the decision to create migrations as partial classes?
Would there be a downside to creating a single Migration that combines the two?

Hi @EelcoMulder
A lot of the groundwork has been done at this stage but any assistance is always welcome!
At the moment, one issue I'm trying to find a solution for is how to handle adding the generated migrations to the .fsproj file in the correct location for compliation
Any ideas on how this could be approached would be very much appreciated!

@simontaite I think the C# approach should work here too, looking at https://github.com/odytrice/PluralsightDownloads/tree/master/PlaybyPlayEFCore10/FSharp/myapi

Would there be a downside to creating a single Migration that combines the two?

No, we really just use the *.Designer.cs files as a don't touch this code marker, but there are plenty of other ways to communicate that.
We might need to file an issue on EF to not write the designer file if the contents are empty.

Awesome! Shall have a look at how to pass the necessary parameters from both methods to one, hopefully will still be able to use the MigrationsCodeGenerator base class
Copying everything from the Designer file to the other works for building but dotnet ef migrations script throws an error, both normally and trying to create the context via an IDesignTimeDbContextFactory
System.MissingMethodException: No parameterless constructor defined for this object.
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContextFromFactory(Type factory)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func`1 factory)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.ScriptMigration(String fromMigration, String toMigration, Boolean idempotent, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScriptMigration.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
No parameterless constructor defined for this object.

Not sure yet if this is something I'm missing in how things are configured or if EF is having issues with record types, although I know that it supports constructors with parameters as of 2.1
On a related note, I notice some of the API signatures have changed in 2.1.0-preview2, ICSharpDbContextGenerator.WriteCode for instance
Should we be developing against preview2?

That error is complaining about the DbContext constructor. See Design-time DbContext Creation

Thanks, will look into that and hopefully get a fully working migration soon
For automatically adding migration files to the fsproj, we may be able to utilise https://github.com/fsprojects/Mechanic

Also, will keep an eye on https://github.com/Microsoft/visualfsharp/pull/4499
If this make it into the language soon it would simplify column definition in CreateTableOperation a lot

@simontaite It would be really great if you could trial https://github.com/Microsoft/visualfsharp/pull/4499 to see if it works for this scenario. Validating that language addition for a few real-world uses of anonymous types by .NET frameworks is one of the remaining things needed to get it accepted .

Looks like I may have to reimplement MigrationsScaffolder after all. Once all the migration is moved to a  single file it generates a migration script, still a few bits to do but it's nice to see it creating the CREATE TABLE script correctly with indexes and keys
The population of __EFMigrationsHistory isn't quite correct though, it's not writing the values to SQL as string literals
INSERT INTO "__EFMigrationsHistory" ("MigrationId", "ProductVersion")
VALUES<PHONE_NUMBER>3728_InitialCreate, 2.1.0-preview2-30335);

@dsyme Now that I actually have a migration I can (more or less) trust I'll be looking at trialing Microsoft/visualfsharp#4499 in the next day or two

@dsyme A migration builds correctly with anon types in VS2017
I can't build or script the migration through the command line by running dotnet ef as I have been unable to correctly use the EF Core build from dsyme/visualfsharp/anon-1 from the command line

@dsyme A migration builds correctly with anon types in VS2017

I can't build or script the migration through the command line by running dotnet ef as I have been unable to correctly use the EF Core build from dsyme/visualfsharp/anon-1 from the command line

Do you mean you haven't been able to use the freshly built F# compiler from that branch? Setting <FscToolPath> to c:\Git\visualfsharp\debug\net40\bin (or whatever) in a PropertyGroup may help with that?
Or is the problem picking up a new FSharp.Core?  If so use an explicit <Reference>?

I've set FscToolPath, when I try running dotnet build I get the following
Microsoft (R) Build Engine version <IP_ADDRESS>72 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring packages for C:\src\MigrationTest\MigrationTest.fsproj...
  Generating MSBuild file C:\src\MigrationTest\obj\MigrationTest.fsproj.nuget.g.props.
  Restore completed in 1.17 sec for C:\src\MigrationTest\MigrationTest.fsproj.
C:\Program Files\dotnet\sdk\2.1.300\FSharp\Microsoft.FSharp.Targets(263,9): error MSB6004: The specified task executable location "C:\src\visualfsharp\release\net40\bin\RunFsc.cmd" is invalid. [C:\src\MigrationTest\MigrationTest.fsproj]

Build FAILED.

C:\Program Files\dotnet\sdk\2.1.300\FSharp\Microsoft.FSharp.Targets(263,9): error MSB6004: The specified task executable location "C:\src\visualfsharp\release\net40\bin\RunFsc.cmd" is invalid. [C:\src\MigrationTest\MigrationTest.fsproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:11.24

I can build and create an EF migration using the normal .NET Core installation
I can then comment out the types created for migrations like
type private StudentsTable = {
    Id: OperationBuilder<AddColumnOperation>
    LastName: OperationBuilder<AddColumnOperation>
    FirstName: OperationBuilder<AddColumnOperation>
    EnrollmentDate: OperationBuilder<AddColumnOperation>
}

Setting the FscToolPath then allows me to build in VS2017 with anon types.
But trying to build using dotnet build still fails
I've ran .\src\buildfromsource.cmd to build the .NET Core compiler and referenced the built Microsoft.FSharp.Compiler.nupkg but I still get the original error message above
Essentially I can use the built compiler from VS but not through the dotnet CLI

Ah, I think you need to set both FscToolPath and
<FscToolExe>fsc.exe</FscToolExe>

That's it, thank you very much!
Builds and creates a valid migration script!

What's the current status on this? We're going to use EFCore + FSharp a lot here. If there's anything pending in order to be 100%, we can help.

I tried to build this project and reference it but still not able to do: dotnet ef migrations add Test

I got it working, had to do a couple fixes in order to get Npgsql working. Will send a PR soon, basically indentation errors and missing namespaces.

Awesome! Thanks very much. I'm afraid I haven't been able to do much on this project over the last while due to some family matters but hoping to be able to get back to working more on it soon
Any PRs to help fix issues or add functionality is always welcome!
Regarding getting to be 100% I would like to push on adding tests to mirror what's in EntityFramework  to try ensure correctness of what we have so far
After that want to start extending it to be able to ensure things like option types and discriminated unions are mapped in some sensible way

For option types  someone did this: https://blog.bitbadger.solutions/2018/f-sharp-options-with-ef-core.html

Sweet! Thanks for that @EelcoMulder!


lib: fix ini generators

Motivation for this change
Fix #137390
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

also i do prefer this solution over the original pr

thanks!

lib.isDerivation is not a builtin and only checks if it is an attrset with { type = "derivation"; }, though i doubt that people actually use it as an attrset

That's a good issue to raise. Fundamentally, the nix type system is not extensible so we are bound to hit that issue with whatever structure we come up with on top. It would have been better if the "type" key was named "__type" to reduce the likelihood of the collision.

I agree that avoiding collisions is good in general but in this case it only collides if there is an attribute named type with the value of "derivation", and I can't imagine this ever happening for an attribute set that isn't actually a derivation. So it should be relatively safe for the time being.


Add SDK v5 integration steps

Closes https://adjustcom.atlassian.net/browse/ADAPP-16715
This PR includes updates to:

[x] The Android integration guide
[x] The Android feature guides
[x] The iOS integration guide
[x] The iOS feature guides

@shashanksu @uerceg Android instructions are done. The dev hub has a slightly different content setup, so here are the direct links to the stuff that was highlighted in your doc:

Integration guide
COPPA compliance
Play Store Kids app
Revenue deduplication
Reattribution using deep links
Global parameters
Offline mode
Device IDs
Disable SDK. Enable step is just below.
Attribution information

@Sporiff It looks good.  Just few of the minor observations though:

Huawei Install Referrer and Meta Install Referrer can also be consider as plugin, similar to how Xiaomi IR plugin is placed in a plugin section.
GetAttribution method's signature is also changed to accept callback, as mentioned in the migration guide.
The example mentioned in the LinkResolution also changes where reference to deeplink API is now changed from Adjust.appWillOpenUrl to Adjust.processDeeplink.
Example for setting Deduplication Id to be updated, replacing mention of setOrderId to setDeduplicationId.
DisableThirdPartySharing do not exist in v5 as mentioned in the migration guide.
SetUrlStrategy API is also changed as mentioned in the migration guide.
Reset method name for Global Callback Parameter and Global Partner Parameter is changed from reset... to remove ...   as mentioned in the migration guide.

@Aditi3 iOS has been updated in the same way. Specific links are:

Integration guide
COPPA compliance
Revenue deduplication
Reattribution using deep links
Global parameters
Offline mode
Device IDs
Disable SDK. Enable step is just below.
Attribution information

@shashanksu I've updated the preview to address what you raised here.

Hi @Sporiff
The code snippet below needs to be updated across the documentation guide under Objective-C label -
from -
*adjustConfig = [ADJConfig configWithAppToken:@"{YourAppToken}"
                                  environment:ADJEnvironmentSandbox];

to
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:@"{YourAppToken}"
                                                   andEnvironment:ADJEnvironmentSandbox];

On Swift's side -
instead of below -
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let adjustConfig = ADJConfig(
   appToken: yourAppToken,
   environment: environment)
Adjust.appDidLaunch(adjustConfig)

should be -
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox
let adjustConfig = ADJConfig(
    appToken: yourAppToken,
    andEnvironment: environment)
Adjust.initSdk(adjustConfig)

@Aditi3 I've updated the ADJConfig examples as you've written them. I've also updated the Ad revenue guides for both iOS and Android @shashanksu

@Sporiff Few more observations on Android docs, please find below:

Configuration - Enable Cost Data Sending  AdjustConfig.setNeedsCost(true) is changed to AdjustConfig.enableCostDataInAttribution().  Also, this can be added in the MigrationGuide.
Configuration - Enable background recording AdjustConfig.setSendInBackground(true) is changed to AdjustConfig.enableSendingInBackground().  Also, this can be added in the MigrationGuide.
Configuration - Enable event buffering  This is removed in v5 (as already mentioned in the Migration Guide).
Configuration - Delay start of the SDK This is removed in v5 (as already mentioned in the Migration Guide).
Multi Process Apps All instances of Adjust.onCreate(config) to be replaced with Adjust.initSdk(config)
Send preinstalled app activity All instances of Adjust.onCreate(config) to be replaced with Adjust.initSdk(config)
Get attribution information All instances of Adjust.onCreate(config) to be replaced with Adjust.initSdk(config)
Send callback information All instances of Adjust.onCreate(config) to be replaced with Adjust.initSdk(config)
Admob SDK integration AdjustConfig.AD_REVENUE_ADMOB usage in the example to be replaced with "admob_sdk"
AD(X) SDK integration AdjustConfig.AD_REVENUE_ADX usage to be replaced with "adx_sdk"
AppLovin MAX SDK integration AdjustConfig.AD_REVENUE_APPLOVIN_MAX usage to be replaced with "applovin_max_sdk"
Batch.com SDK integration All instances of Adjust.onCreate(config) to be replaced with Adjust.initSdk(config)
Helium by Chartboost SDK integration AdjustConfig.AD_REVENUE_HELIUM_CHARTBOOST usage to be replaced with "helium_chartboost_sdk"
Ironsource SDK integration  AdjustConfig.AD_REVENUE_IRONSOURCE  usage to be replaced with "ironsource_sdk"
Mixpanel SDK integration AdjustConfig.AD_REVENUE_IRONSOURCE  usage to be replaced with "ironsource_sdk"

@shashanksu I've updated everything you've mentioned there, plus I've been through and cleaned up all other onCreate calls and integration docs.
@Aditi3 Thanks for the changes. I've updated the URL strategy and integration docs.


Error in Append dataset

Describe the bug
Append stream ended for dataset eth_recent_blocks - using sample from docs.spiceai.org I see the following error:
2024-07-03T00:18:28.377923Z  INFO runtime: Dataset eth_recent_blocks registered (spice.ai/eth.recent_blocks), acceleration (arrow, append), results cache enabled.
2024-07-03T00:18:28.798383Z  WARN runtime::accelerated_table::refresh_task: Append stream ended for dataset eth_recent_blocks

To Reproduce
Use the included spicepod and run spice.
Expected behavior
Append dataset loads with no warnings
Spicepod
version: v1beta1
kind: Spicepod
name: spiceai
datasets:
- from: spice.ai/eth.recent_blocks
  name: eth_recent_blocks
  acceleration:
    enabled: true
    refresh_mode: append

Question

What is the use case of append acceleration without time_column specified?
What behavior is expected when time_column is not set in spicepod?
When no time_column is specified, no new append data will be retrieved from server and added. Should the stream be closed or remain open when all streams have been received?

Observations

Dataset can be queried in spice sql despite the warning log. No new data will be appended to the spice sql repl for the warning dataset.

sql> select number, timestamp from eth_recent_blocks limit 1;
+----------+------------+
| number   | timestamp  |
+----------+------------+
| 20264282 |<PHONE_NUMBER> |
+----------+------------+

Time_column is a required parameter for an append dataset to get new append data, it is required for determining which data is new and to be appended by comparing with timestamps specified in spicepod configs (e.g. refresh_check_interval). Without time_column, we can only query the data, receiving a data stream, and stream ended when all streams are received.
The above behaviors persist in prior Spice OSS versions, tested with v 0.13.3

Solution

Change the config in doc to below. Leave the warning log as it is, since the append stream does ended in reality

  - from: spice.ai/eth.recent_blocks
    name: eth_recent_blocks
    time_column: timestamp
    acceleration:
      enabled: true
      refresh_check_interval: 1s
      refresh_mode: append

Refer to: https://github.com/orgs/spiceai/projects/18/views/1?filterQuery=assignee%3ASevenannn&pane=issue&itemId=71006781


Improve returning behavior of group.you

Let's say we are in a dyadic experiment. If participant A's experiment is aborted, any call to group.you made by participant B will lead to a StopIteration exception, because group.you only ever returns sessions that are either running or finished.
Maybe the attribute can be more permissive - in this case, experiments would either run into timeouts or would need to be aborted explicitly if a group member's session is aborted.

The current behavior seems to be working quite well, so I'll close this for now.


[ListItem] row action tooltip not visible in RTL mode

Describe the bug
The list item's row action tooltip not visible in RTL mode. This issue will probably be solved by #972 but that might take a bit longer.
To Reproduce
Steps to reproduce the behavior:

Go to /story/watson-iot-experimental-list--with-row-actions-single
Switch to RTL
Hover on the edit icon of a row
Notice how the tooltip is only partially visible

Please create a reduced test case in CodeSandbox:
https://codesandbox.io/s/github/IBM/carbon-addons-iot-react/tree/master/examples/codesandbox

Expected behavior
Tooltip extends to the right in RTL mode
Environment/versions:

OS: [e.g. MacOS, Windows]
Browser: [e.g. chrome, safari]
carbon-addons-iot-react version: [e.g. v2.60.0]

Additional context

Can no longer reproduce


Layering snmalloc on top of another allocator

There are cases where it would be useful for snmalloc to pass certain requests to a different allocator.

When overriding an allocator, being able to decide if an allocation is not from snmalloc and pass it to the original allocator.
When integrating with systems such as GWP-Asan, here memory comes from a different source and structure, and wants to be called some of the time.

The documentation for GWP-Asan has
#ifdef INSTALL_GWP_ASAN_STUBS
  gwp_asan::GuardedPoolAllocator GWPASanAllocator;
#endif

void* YourAllocator::malloc(..) {
#ifdef INSTALL_GWP_ASAN_STUBS
  if (GWPASanAllocator.shouldSample(..))
    return GWPASanAllocator.allocate(..);
#endif

  // ... the rest of your allocator code here.
}

This I think should involve a concept of the shape:
class SecondaryAllocator
{
   void* alloc(size_t);
   void dealloc(void*);
};

We would put calls on the slow path for allocation

For small allocations here: https://github.com/microsoft/snmalloc/blob/33b7f656ab40f87d6d09f220af2f694f10e7d6db/src/snmalloc/mem/corealloc.h#L881
For large allocations here: https://github.com/microsoft/snmalloc/blob/33b7f656ab40f87d6d09f220af2f694f10e7d6db/src/snmalloc/mem/localalloc.h#L186

This would involve adding something like
void* result = SecondaryAllocator::alloc(size);
if (result != nullptr)
  return result;

For deallocation there would just be a change here:

https://github.com/microsoft/snmalloc/blob/33b7f656ab40f87d6d09f220af2f694f10e7d6db/src/snmalloc/mem/localalloc.h#L698-L704

This would involve adding code like
SecondaryAllocator::free(p_tame);

We could then define a Default class as
class DefaultSecondaryAllocator
{
  SNMALLOC_FAST_PATH static void* alloc(size_t)
  {
    return nullptr;
  }

  SNMALLOC_FAST_PATH static void free(void* p)
  {
    // If p_tame is not null, then dealloc has been call on something
    // it shouldn't be called on.
    // TODO: Should this be tested even in the !CHECK_CLIENT case?
    snmalloc_check_client(
      mitigations(sanity_checks),
      p_tame == nullptr,
      "Not allocated by snmalloc.");
  }
};

and for GWP something line
class GWPSecondaryAllocator
{
  SNMALLOC_FAST_PATH static void* alloc(size_t size)
  {
    if (SNMALLOC_UNLIKELY((GWPASanAllocator.shouldSample())
    {
       return GWPASanAllocator.allocate(size);
    }
    return nullptr;
  }

  SNMALLOC_FAST_PATH static void free(void* p)
  {
    GWPAsanAllocator.deallocate(p);
  }
};

Providing a SecondaryAllocator as a compile time option would allow us to integrate various systems cleanly.
Unknowns

How to actually integrate with GWPAsan builds
If this design works for more than just GWPAsan
Precise way to integrate the configuration of the SecondaryAllocator into the build.  Perhaps part of   class CommonConfig, and override by specific configurations.

First, this does seem like a good idea.
I am not sure about GWPASan but maybe you can try scudo first. It is a purely standalone allocator without any dependency to c/c++ runtime. Hence it may be easy to integrate. Scudo itself also has a GWPASan flag but I did not try that before.

Actually, I checked the Scudo interface. API-wise I think GWPASan are easier to work with. Let me check more about how scudo is integrating GWPASan and I can report back.

See also https://github.com/llvm/llvm-project/blob/90a776fbdb35ef6ac6f28a19937e88abd2e4611b/compiler-rt/lib/scudo/standalone/combined.h#L207

Thanks for investigating. Reading that file, we also need to do some integration around realloc/malloc_usable_size.  I'm not sure if we can find the start of an object easily with GWP-Asan to get external_pointer working as well.
@SchrodingerZhu I won't have time to work on this for a while, so if you're interested you are welcome to have a go. Otherwise I'll try to find some time, but it might be a month or two.

I see no real harm in the proposed refactoring to allow for compile-time pluggable behaviors here.  Just to state the obvious: the branch on the malloc side should optimize away given the Default and we already have a branch on the free side.  (Though some part of me does wonder if there's a way to composite snmalloc and more than one other allocator... but that probably requires that everyone involved understand the pagemap at least a little bit, and that's probably a bridge too far.)
One nit-picky, but just to say... in the example above, the DefaultSecondaryAllocator::free() does not have access to the would-be-domesticated p_tame.  However it'd only be called if p_tame == null, so maybe its body is snmalloc_check_client(mitigations(sanity_checks), true, "Not allocated by snmalloc")?


Release supported rpm and deb Titan packages

The master already contains a RPM specfile and set of Debian control files under titan-dist, but these need updating to account for RexsterTitanServer's removal and documenting.
Related but not integral to this issue: flesh out and document the prototype Titan puppet module.

Discussions with @dalaro yesterday made it sound like this wasn't going to happen. - closing


[updatecli] Update custom-distribution-service appVersion version to 0.0.4

Changelog
Release published on the 2020-09-25 20:46:37 +0000 UTC at the url https://github.com/jenkinsci/custom-distribution-service/releases/tag/0.0.4

🚀 New features and improvements

Misc infra updates (#167) @halkeye
Improve mobile friendly (#165) @halkeye

🐛 Bug Fixes

Move everything to api/. Fix the one path starting with / (#166) @halkeye

👻 Maintenance

Make sure mvn release uses just the version number for tags (#164) @halkeye
update jenkinsfile to use ng-warnings (#168) @halkeye

Reports
Source:
	✔  (githubRelease)

Condition:
	✔  Docker Image Published on Registry(dockerImage)

Remark
This pull request was automatically created using olblak/updatecli.
Please report any issues with this tool here

@timja right version number now? now now now? nowwwww?


build: Bump duckdb to 0.10.2

@aljazerzen FYI we have a couple of version of arrow now, because of connectorX
cargo tree --all-features -i arrow@49
arrow v49.0.0
├── connector_arrow v0.4.1
│   └── lutra v0.11.5 (/Users/maximilian/workspace/prql/lutra/lutra)
│       └── lutra-python v0.11.5 (/Users/maximilian/workspace/prql/lutra/bindings/python)
├── lutra v0.11.5 (/Users/maximilian/workspace/prql/lutra/lutra) (*)
└── lutra-python v0.11.5 (/Users/maximilian/workspace/prql/lutra/bindings/python)

We do, yes, but that should not be a problem, right?
A bit longer compilation times, but nothing else.

We do, yes, but that should not be a problem, right?
A bit longer compilation times, but nothing else.

Yes totally, only longer compilations, v low priority
(Have been doing some low priority items myself while thinking about whether we need to rewrite the codegen completely!)


Switch to packaging

Address #83

@leo-ware packaging seems like a better solution according to PEP 632 let me know if it fixes your issue


Changes

Codecov Report
Base: 96.41% // Head: 95.64% // Decreases project coverage by -0.77% :warning:

Coverage data is based on head (1dcbe27) compared to base (c63555e).
Patch coverage: 90.74% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #20      +/-   ##
==========================================
- Coverage   96.41%   95.64%   -0.77%
==========================================
  Files          67       75       +8
  Lines        5744     5879     +135
==========================================
+ Hits         5538     5623      +85
- Misses        206      256      +50

Flag
Coverage Δ

unittests
95.64% <90.74%> (-0.77%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

spacepackets/ccsds/spacepacket.py
97.19% <ø> (+0.93%)
:arrow_up:

spacepackets/ecss/req_id.py
100.00% <ø> (+2.38%)
:arrow_up:

spacepackets/util.py
90.81% <33.33%> (-0.90%)
:arrow_down:

spacepackets/ccsds/time.py
85.79% <66.66%> (-3.71%)
:arrow_down:

spacepackets/__init__.py
100.00% <100.00%> (ø)

spacepackets/ecss/pus_17_test.py
88.57% <100.00%> (ø)

spacepackets/ecss/pus_1_verification.py
89.47% <100.00%> (ø)

spacepackets/ecss/tm.py
92.51% <100.00%> (+0.15%)
:arrow_up:

tests/ccsds/test_sp_parser.py
100.00% <100.00%> (ø)

tests/ccsds/test_time.py
100.00% <100.00%> (ø)

... and 13 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


no alternatives to building with vs2019?

any plans on creating a linux based cli build instructions and tests?
I ran a couple of the specific makes that had a makefile in them and arm options.
to build the "main" clammicrobench I've tried using msbuild on ubuntu 20.04 running on EC2 instance (aarch64 cpu).
in the solution file I'm only seeing x64 and win32 options for build.
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Debug|x64.Build.0 = Debug|x64
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Debug|x86.ActiveCfg = Debug|Win32
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Debug|x86.Build.0 = Debug|Win32
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Release|x64.ActiveCfg = Release|x64
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Release|x64.Build.0 = Release|x64
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Release|x86.ActiveCfg = Release|Win32
                {7E8CF2BA-57A7-4B42-B721-97E02BF9A8B8}.Release|x86.Build.0 = Release|Win32

it's very possible that I'm missing something here but I would rather ask than assume and make a mess.
NASM is available only in rpm format (possible to install on ubuntu but somewhat too forced and might cause other issues down the line).
reached this repo basically after reading the blog post about graviton 3 (https://chipsandcheese.com/2022/05/29/graviton-3-first-impressions/)
thanks in advance

You can build and run the AsmGen project on Windows, then upload the generated source files (clammicrobench.c, clammicrobench_x86.s or clammicrobench_arm.s) to the linux VM, and build it there.

Building the structure size benchmarks with VS is no longer supported, and replaced with mingw-w64 cross compile.


Timers

"Game time" timers.
Lua API is:
set_timer(name, delay, message_name, payload)
clear_timer(name)

Where name can be nil in set_timer for "make one up for me" and is returned, delay is a positive integer of seconds. Message is sent to self, payload optional.

Looks reasonable to me.

Ugh I have no idea how the mobile interface on GitHub works. Lgtm


Delay progress bar if page is loaded within N ms

https://github.com/rstacruz/nprogress/issues/169
I don't want to show the progress bar if the page loads in under n milliseconds, seems unnecessary for pages that load very very fast (which is most of the time).

Anything below ~ 500 ms does not need an indicator from a user's perspective.
Always showing the progress indicator in fact deteriorates user experience for fast page loads, because it is a rather distracting flash.


No good working in golang

In .go files it shows only functions, so variables in functions not available (I am talking about winbar)

Can you share the output by get_location and get_data and what is missing in them?

get_location
%#NavicIconsMethod# %*%#NavicText#(*APIserver).configureStore%*
get_data (for e in pairs(navic.get_data()) and one more for-loop)
scope table: 0x419abc80
icon 
kind 6
type Method
name (*APIserver).configureStore

Maybe the cause of this problem is the same as the https://github.com/SmiteshP/nvim-navic/issues/98.

Yep, it might be issue with is_available function. @RAprogramm Can you try calling is_available explicitly in your winbar config for which ever plugin you are using.
function() return require("nvim-navic").is_available() end

The issue is that the Go LSP (gopls) is providing less context that for example a Lua LSP (which gives too much structure imo). So with Go you only see the function, method or struct but not deeper than one level in nvim-navic.
I think treesitter might be a better fit for this plugin that LSP. Optionally having which types to put in the breadcrumb configurable.

@marcelbeumer Can you give example of code snippet and the information shown vs what information you want to see instead? I am not well versed in golang


Color Palettes

Instead of adding a color wheel, what about allowing users to create their own palettes?

Only 64 slots maximum

Each slot can be changed to a different color. Doing so while said colors are drawn on the canvas could result in them changing as well.

Color palettes could be saved as their own file, allowing for multiple palettes that can be swapped out.

What would be the easiest means of programming the ability to change colors? Regardless of accessibility.

If you need more colors in the short-term, there's a somewhat hidden feature where you can cycle through a selection of I think 6 palettes I've programmed in. If you hold L to bring up the palette, then press R, it will cycle through the available palettes.
User-defined palettes are interesting! I don't know... it certainly would make sense to have selectable colors, there's no reason it can't be done. Maybe it could be as easy as a separate thing in the menu so it doesn't have to be done during drawing.