text:
Filtering table leads to "Uncaught TypeError: Cannot read property 'get' of undefined"

Hey, I'm not 100% sure this is a react-virtualized problem but I'm a newbie programmer and I could use some help. I am trying to filter my RV table by .filter()'ing the array I'm inputting and it works almost perfectly, it filters correctly, and when I query for something not on the table it returns me 0 rows like it should. But after that, if I try to query again for a valid value in the table it breaks and gives me this error Uncaught TypeError: Cannot read property 'get' of undefined
Here's my code
import React, {useState} from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { withStyles } from '@material-ui/core/styles';
import TableCell from '@material-ui/core/TableCell';
import TableSortLabel from '@material-ui/core/TableSortLabel';
import { AutoSizer, Column, SortDirection, Table } from 'react-virtualized';
import TableToolbar from './TableToolbar'
import _ from 'lodash'

const styles = theme => ({
  [...]
});

class DataTable extends React.Component {
  state = {
    data: null,
    sortDirection: null,
    sortBy: null,
  }
  componentDidMount = () => {
    this.setState({data: this.props.data})
  }
  componentDidUpdate = (prevProps) => {
    if (this.props.data !== prevProps.data) this.setState({data: this.props.data})
  }
  getRowClassName = ({ index }) => {
    const { classes, rowClassName, onRowClick } = this.props;

    return classNames(classes.tableRow, classes.flexContainer, rowClassName, {
      [classes.tableRowHover]: index !== -1 && onRowClick != null,
    });
  };

  cellRenderer = ({ cellData, columnIndex = null }) => {
    const { columns, classes, rowHeight, onRowClick } = this.props;
    return (
      <TableCell
        component="div"
        className={classNames(classes.tableCell, classes.flexContainer, {
          [classes.noClick]: onRowClick == null,
        })}
        variant="body"
        style={{ height: rowHeight }}
        align={(columnIndex != null && columns[columnIndex].numeric) || false ? 'right' : 'left'}
      >
        {cellData}
      </TableCell>
    );
  };

  headerRenderer = ({ label, columnIndex, dataKey, sortBy, sortDirection }) => {
    const { headerHeight, columns, classes } = this.props;
    const direction = {
      [SortDirection.ASC]: 'desc',
      [SortDirection.DESC]: 'asc',
    };

    const inner =
      !columns[columnIndex].disableSort ? (
        <TableSortLabel active={dataKey === sortBy} direction={direction[sortDirection]}>
          {label}
        </TableSortLabel>
      ) : (
        label
      );

    return (
      <TableCell
        component="div"
        className={classNames(classes.tableCell, classes.flexContainer, classes.noClick)}
        variant="head"
        style={{ height: headerHeight }}
        align={columns[columnIndex].numeric || false ? 'right' : 'left'}
      >
        {inner}
      </TableCell>
    );
  };

  sort = ({ sortBy, sortDirection }) => {
    let data = _.sortBy(this.state.data, by => by[sortBy])
    data = sortDirection === SortDirection.DESC ? data.reverse() : data
    this.setState({ sortBy, sortDirection, data })
  }

  render() {
    const { classes, columns, data: dados, ...tableProps } = this.props
    const { data, sortBy, sortDirection } = this.state
    const filteredColumns = columns.filter(column => column.dataKey !== 'position')
    return (
      <AutoSizer>
        {({ height, width }) => (
          <Table
            className={classes.table}
            height={height}
            width={width}
            {...tableProps}
            rowClassName={this.getRowClassName}
            rowGetter={({ index }) => data[index]}
            sort={this.sort}
            sortBy={sortBy}
            sortDirection={sortDirection}
          >
            {filteredColumns.map(({ cellContentRenderer = null, className, dataKey, ...other }, index) => {
              let renderer;
              if (cellContentRenderer != null) {
                renderer = cellRendererProps =>
                  this.cellRenderer({
                    cellData: cellContentRenderer(cellRendererProps),
                    columnIndex: index,
                  });
              } else {
                renderer = this.cellRenderer;
              }

              return (
                <Column
                  key={dataKey}
                  headerRenderer={headerProps =>
                    this.headerRenderer({
                      ...headerProps,
                      columnIndex: index,
                    })
                  }
                  className={classNames(classes.flexContainer, className, classes.column)}
                  headerClassName={classes.noOutline}
                  cellRenderer={renderer}
                  dataKey={dataKey}
                  {...other}
                />
              );
            })}
          </Table>
        )}
      </AutoSizer>
    );
  }
}

const WrappedTable = withStyles(styles)(DataTable);

const dados = [
  ['Eric Nunes Reis', 'Vendedor', 'eric@c2pa.com', 'eric@c2pa.com', 'Vendas', 'Active'],
  ['Keven Felipe Nunes Reis', 'Vendedor', 'keven@c2pa.com', 'keven@c2pa.com', 'Vendas', 'Inactive'],
  ['Nicole Nunes Reis', 'Limpeza', 'nicole@c2pa.com', 'nicole@c2pa.com', 'Vendas', 'Active'],
  ['Paulo Cesar Teixeira Reis', 'Liberador', 'paulo@c2pa.com', 'paulo@c2pa.com', 'Liberador', 'Active'],
  ['João', 'Vendedor', 'joao12345678@c2pa.com', 'joao12345678@c2pa.com', 'Vendas', 'Inactive'],
  ['Maria', 'Diretor', 'mari@g2.com', 'mari@g2.com', 'Diretoria', 'Active'],
  ['Joaquina', 'Limpeza', 'joaq1234@c2pa.com', 'joaq1234@c2pa.com', 'Vendas', 'Inactive'],
  ['Marcio', 'Liberador', 'marcio432@c2pa.com', 'marcio432@c2pa.com', 'Vendas', 'Active']
];

let id = 0;
function createData(name, position, userId, email, role, status) {
  id += 1;
  return { id, name, position, userId, email, role, status };
}

const rows = [];

for (let i = 0; i < 2000; i += 1) {
  const randomSelection = dados[Math.floor(Math.random() * dados.length)];
  rows.push(createData(...randomSelection));
}

const columns = [
  {
    width: 200,
    flexGrow: 1.0,
    label: 'Name',
    dataKey: 'name',
  },
  {
    width: 250,
    label: 'Position',
    dataKey: 'position',
  },
  {
    width: 350,
    label: 'User Id',
    dataKey: 'userId',
  },
  {
    width: 200,
    label: 'Role',
    dataKey: 'role',
  },
  {
    width: 200,
    label: 'Status',
    dataKey: 'status',
  },
]

const ReactVirtualizedTable = () => {
  const [displayedColumns, setDisplayedColumns] = useState({
    name: true,
    position: true,
    userId: true,
    role: true,
    status: true
  })
  const [filter, setFilter] = useState('')

  const filteredData = rows.filter(info => {
    if (filter.length < 2) return true;
    let lowerFilter = filter.toLowerCase()
    let name = info.name.toLowerCase()
    let position = info.position.toLowerCase()
    let filteredNames = name.indexOf(lowerFilter) > -1
    let filteredPositions = position.indexOf(lowerFilter) > -1
    return filteredNames || filteredPositions
  })
  return (
    <>
      <TableToolbar // Here's where I have the input for filter
        setDisplayedColumns={setDisplayedColumns}
        displayedColumns={displayedColumns}
        filter={filter}
        setFilter={setFilter}
      />
      <WrappedTable
        onRowClick={event => console.log(event)}
        displayedColumns={displayedColumns}
        rowCount={filteredData.length}
        data={filteredData}
        columns={columns}
      />
    </>
  );
}

export default ReactVirtualizedTable;

I tried reproducing this on CodeSandbox with a much simpler table and no Mui but it worked fine. Would appreciate any other feedback on the code too, thanks!

Got it to work!

@Ericnr what ended up being the fix for this?

@johnryan I ended up completely refactoring this so I dont even remember, but looking back at the code
componentDidUpdate = (prevProps) => {     if (this.props.data !== prevProps.data) this.setState({data: this.props.data}) }
this comparison wouldnt ever return true when the props is an array of objects

@Ericnr , any pointers to generate dynamic columns is much appreciated. Your example used MUI, I am looking for something without it.
TA

@Lekha30 MUI really doesn't play a part on the dynamic columns though. Here is a quick example without MUI. All you really need to do is filter the columns prop passed to <Table />

authors: Ericnr Lekha30 johnryan

repo: bvaughn/react-virtualized


text:
🛑 PSR Aster 1 is down

In 1eef956, PSR Aster 1 (https://cloud.tymly.in/status/1059) was down:

HTTP code: 521
Response time: 20220 ms

Resolved: PSR Aster 1 is back up in 64c7d44.

source: gharchive/issue

repo: bvenkysubbu/tymlymonitor

license: MIT

license_type: permissive

license_source: github-api


text:
🛑 PSR Aster 1 is down

In 217ceaa, PSR Aster 1 (https://cloud.tymly.in/status/1059) was down:

HTTP code: 521
Response time: 20228 ms

Resolved: PSR Aster 1 is back up in daf9773.


text:
🛑 PSR Aster 1 is down

In c7746ca, PSR Aster 1 (https://cloud.tymly.in/status/1059) was down:

HTTP code: 521
Response time: 20255 ms

Resolved: PSR Aster 1 is back up in 331f56c.


text:
🛑 PSR Aster 1 is down

In cd7af8a, PSR Aster 1 (https://cloud.tymly.in/status/1059) was down:

HTTP code: 521
Response time: 20225 ms

Resolved: PSR Aster 1 is back up in 569f98d.


text:
🛑 United Elysium is down

In 292e3b4, United Elysium (https://cloud.tymly.in/status/1019) was down:

HTTP code: 521
Response time: 233 ms

Resolved: United Elysium is back up in ddb9c0b.


text:
🛑 SMD Altezz Block C is down

In 9de580e, SMD Altezz Block C (https://cloud.tymly.in/status/1177) was down:

HTTP code: 521
Response time: 20245 ms

Resolved: SMD Altezz Block C is back up in 901c810.


text:
🛑 Mahaveer Varna B3 is down

In 45aca63, Mahaveer Varna B3 (https://cloud.tymly.in/status/1086) was down:

HTTP code: 521
Response time: 240 ms

Resolved: Mahaveer Varna B3 is back up in 3556ca8.


text:
🛑 SMR Vinay Cascade A Block is down

In 7d113b8, SMR Vinay Cascade A Block (https://cloud.tymly.in/status/1094) was down:

HTTP code: 521
Response time: 20236 ms

Resolved: SMR Vinay Cascade A Block is back up in a127408.


text:
🛑 Trifecta Esplanade O Block is down

In 7173aab, Trifecta Esplanade O Block (https://cloud.tymly.in/status/1166) was down:

HTTP code: 521
Response time: 242 ms

Resolved: Trifecta Esplanade O Block is back up in 498a917.


text:
🛑 Trifecta Esplanade C Block is down

In 486ee28, Trifecta Esplanade C Block (https://cloud.tymly.in/status/1155) was down:

HTTP code: 521
Response time: 218 ms

Resolved: Trifecta Esplanade C Block is back up in be538f4.


text:
🛑 Nitesh Flushing Meadows Block B is down

In fcbc0de, Nitesh Flushing Meadows Block B (https://cloud.tymly.in/status/1047) was down:

HTTP code: 521
Response time: 20227 ms

Resolved: Nitesh Flushing Meadows Block B is back up in 0de7e0b.


text:
🛑 Trifecta Esplanade C Block is down

In e3895e7, Trifecta Esplanade C Block (https://cloud.tymly.in/status/1155) was down:

HTTP code: 521
Response time: 20238 ms

Resolved: Trifecta Esplanade C Block is back up in ab0b28c.


text:
🛑 SMR Vinay Cascade B Block is down

In fcc1a52, SMR Vinay Cascade B Block (https://cloud.tymly.in/status/1093) was down:

HTTP code: 521
Response time: 20225 ms

Resolved: SMR Vinay Cascade B Block is back up in 3b67098.


text:
🛑 VBHC Serene Town D Block is down

In ec17c4b, VBHC Serene Town D Block (https://cloud.tymly.in/status/1131) was down:

HTTP code: 521
Response time: 20236 ms

Resolved: VBHC Serene Town D Block is back up in c2f4eb1.


text:
🛑 SNR Silver Ripples 2 is down

In a58ae4d, SNR Silver Ripples 2 (https://cloud.tymly.in/status/1040) was down:

HTTP code: 521
Response time: 20232 ms

Resolved: SNR Silver Ripples 2 is back up in b02ea7a.


text:
🛑 Adarsh Vihar is down

In 6fd1ce7, Adarsh Vihar (https://cloud.tymly.in/status/1041) was down:

HTTP code: 521
Response time: 237 ms

Resolved: Adarsh Vihar is back up in 11fd3a7.


text:
🛑 Trifecta Esplanade Multipurpose Hall is down

In ff78a6e, Trifecta Esplanade Multipurpose Hall (https://cloud.tymly.in/status/1169) was down:

HTTP code: 521
Response time: 250 ms

Resolved: Trifecta Esplanade Multipurpose Hall is back up in ec5a26d.


text:
🛑 Amrutha Sarovar Office is down

In 35b8639, Amrutha Sarovar Office (https://cloud.tymly.in/status/1140) was down:

HTTP code: 521
Response time: 20238 ms

Resolved: Amrutha Sarovar Office is back up in ca8c148.


text:
🛑 Trifecta Esplanade Multipurpose Hall is down

In 4689ad4, Trifecta Esplanade Multipurpose Hall (https://cloud.tymly.in/status/1169) was down:

HTTP code: 521
Response time: 20241 ms

Resolved: Trifecta Esplanade Multipurpose Hall is back up in 9de63df.


text:
🛑 SMD Altezz Block B is down

In 32af9f6, SMD Altezz Block B (https://cloud.tymly.in/status/1176) was down:

HTTP code: 521
Response time: 20222 ms

Resolved: SMD Altezz Block B is back up in 5ad204a after 537 days, 11 hours, 42 minutes.


text:
🛑 Sowparnika Ananda is down

In c63b7e4, Sowparnika Ananda (https://cloud.tymly.in/status/1036) was down:

HTTP code: 521
Response time: 20278 ms

Resolved: Sowparnika Ananda is back up in d76ccbc after 21 hours, 48 minutes.


text:
Fix prefix length for DNSName

If I'm not mistaken, your implementation diverges from the most recent RFC draft in the encoding of the length for DNSName. Please have a look at Section 4.1 as a reference.

Whoops, yes you're right.

source: gharchive/pull-request

repo: bwesterb/mtc


text:
Channel Categories/Groups Missing

Hello; this is an excellent library, and thanks so much for providing it.
Does this library allow me to create channels INTO a channel category/group?
I see that the GuildChannelCreate(guildID, name, ctype string) function creates channels without ANY category attached to them.
Or is there a way with this library to move an existing channel into a category/group? Because then I can just do a two step process.

You should be able to add an existing channel to a category using the newly added ChannelEditComplex function (ParentID).

Ah, I see, its on the "develop" branch. Thank you @Seklfreak , I'll try it out!

You should probably always use the develop branch. master doesn't get updated very often, and develop is stable enough.

Through trial and error, I've found that I can query the Discord API directly by myself using curl in order to get the ID of the category from the parent_id parameter:
curl --header "Authorization: Bot [key]" https://discordapp.com/api/channels/392872395116904448

{"guild_id": "392182453248458762", "name": "r-1-zamiel-vs-xunhingedmoose", "permission_overwrites": [], "topic": null, "parent_id": "392884552407711744", "nsfw": false, "position": 5, "last_message_id": "392872395381276682", "type": 0, "id": "392872395116904448"}

Is there a way to get this from the DiscordGo library without having to do this manually?

If you are using the develop branch you can access a channels parent id:
channel, err := session.State.Channel("392872395116904448")
fmt.Println(channel.ParentID)

you can then get the get the parent channel from the state
parent, err := session.State.Channel(channel.ParentID)
fmt.Println(parent.Name)

@Seklfreak Thank you, but my question was more of how to iterate over all categories or find the name of an existing category from its ID.

You can find the name of an existing category from it's ID using session.State.Channel(), no need to iterate over all categories.
But here is how to iterate over all categories:
guild, err := session.State.Guild("392182453248458762")
for _, guildChannel := range guild.Channels {
	if guildChannel.Type == discordgo.ChannelTypeGuildCategory {
		fmt.Println(guildChannel.Name)
	}
}

Thank you! I see now that all categories are just channels themselves, which is kind of confusing at first, but makes sense.

@Zamiell I think this issue can be closed. :)

It might be best to close it when the change gets merged into master?

Oh, maybe, I don't know to be honest. 🤔

@bwmarrin Can you put it on master?

It will be, fairly soon.

authors: Seklfreak Zamiell bwmarrin

repo: bwmarrin/discordgo

license_source: bigquery


text:
Issue with installing

What issue do you have? Please be as thorough and explicit as possible.
Installation is not working due to canvas asset attempting to be installed
node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.10.2/canvas-v2.10.2-node-v115-linux-glibc-arm.tar.gz

Details of your setup.
Homebridge UI-X

Which version of Homebridge/HOOBS do you have?
Homebridge v1.8.3

Which platform do you run Homebridge/HOOBS on (e.g. Raspberry Pi/Windows/HOOBS Box)? Please also mention your version of Node.js/NPM if known.
Raspberry Pi - Node 20.12.2

Which version of this plugin (homebridge-deebot) do you have? Has the issue started since upgrading from a previous version?
It won't install. Trying latest

Which ECOVACS devices do you have that are causing issues? Please include product models if applicable.
N/A

Please paste any relevant logs below.
homebridge-deebot-error.log

This error is still existing

authors: Glujaz nspector


text:
chartRangeMax cant be set

When setting chartRangeMax i get an error on line 1359 bwu_sparkline.dart.
clipMax = chartRangeMax == null ? double.INFINITY : chartRangeMax;
It seems clipmax is defined as a double, but chartRangeMax is an int.
I use this template:
<bwu-sparkline optionsMap="{{ {type: 'bar', chartRangeMax:100,barWidth:20,barSpacing:0, width: '20', height: '16', values: [100,30,40,50,30,50,30,40,50,30,50,30,40,50,30,50,30,40,50,30,50,30,40 ] } }}" options='{{inlinebarOptions}}' id="inlinebar"> </bwu-sparkline>

Trying with an input  value which is interpreted as a double:
<bwu-sparkline optionsMap="{{ {type: 'bar', chartRangeMax:100.1,barWidth:20,barSpacing:0, width: '20', height: '16', values: [100,30,40,50,30,50,30,40,50,30,50,30,40,50,30,50,30,40,50,30,50,30,40 ] } }}" options='{{inlinebarOptions}}' id="inlinebar"> </bwu-sparkline>

I get an error in options_extended.dart line 269
int get chartRangeMax => this[CHART_RANGE_MAX];
It is expecting an int.

Thanks for the report!

I published an updated version. Feel free to add other bug reports if you run into limitations.


text:
Added object property access to named vars

I've added the ability to access object properties through named vars, e.g. 2 * [someVar.someProperty] as I needed a way to pass whole objects as variables into the parser.
Opening a PR in case you would like these changes too.
My auto-formatter did a number on the README file but I think it's all for the best?

Merged into Release 2.1.0, and published to npm.

authors: SamStonehouse bylexus

repo: bylexus/fparse


text:
Hide custom registry Key/Value and Task Scheduler Tasks

Hi
i made registry key/value and task in task scheduler without $77 in their names
i was not able to hide them by adding their path to "HKLM\SOFTWARE$77config\paths"
as you know there is some keys in registry that can't name them ourselves
but we maybe want to hide them (without losing their functionality)
will this be possible in future updates?

Hiding registry keys or values has medium to critical performance impact depending on how long it takes to process one item.
Let's say your registry key has 10 values, then the HookedNtEnumerateKey hook is triggered 10 times. Each time the hook is triggered, we need to iterate through the parent registry key up until the currently enumerated value is reached. This is due to the way the NT api handles registry enumeration.
Now, there is only a string comparison for the prefix. If we added string comparison for a list of names in addition, then the cost for each iteration would bring down OS performance, because registry queries are executed thousands of times per second by many processes.
Since r77 is designed to be stealth to the user, I prioritize performance in this case. But if you like to contribute, you could take a run and try out adding a registry key/value list in the configuration system, and hiding those. The right place in the code should be fairly easy to find and modify.
By the way, scheduled tasks are hidden implicitly by hiding their files. So, finding the full path and hiding that should do the trick. But it has to be the full absolute path to the job file.

If we added string comparison for a list of names in addition, then the cost for each iteration would bring down OS performance, because registry queries are executed thousands of times per second by many processes.

as you know many people are using process hacker or process explorer instead of task manager
but i guess nobody uses something else instead of windows default registry editor (regedit / regedt32)
you can set that ability to only hide the value / key from registry editor!
then system performance will not be slowed anymore


text:
Support instructions that clobber all registers and have non-fixed early defs

As part of bytecodealliance/wasmtime#9078, I added a new x64 MInst called StackSwitchBasic which clobbers all registers. In the process, I noticed the following: The MInst requires two temporary registers, which I tried to get by adding two additional Writable<Gpr> fields  to StackSwitchBasic and register them as reg_early_defs in x64_get_operands.
However, this makes register allocation always fail for StackSwitchBasic with TooManyLiveRegs.
As a workaround, I'm simply picking two unused registers at emission time , which is safe just because the instruction is known to clobber all registers. That means that this issue isn't really urgent, the workaround works as expected.
This commit on top of Wasmtime main shows a patch that makes the problem easily reproducible: It's undoing my workaround and restoring what I originally had in mind for obtaining the temporary regs.  On that branch, running the cranelift filetests fails on stack_switch.clif.
(Sorry for not having a standalone repro without relying on Wasmtime, but I've not used regalloc2 as a standalone library before)
As another workaround on top of the commit mentioned above, hard-coding the two temporary registers by setting them to fixed early defs also makes the problem go away. But I don't understand regalloc well enough to judge if that may reduce the quality of the generated code by imposing additional constraints.
What I'm seeing here may just be a variation of the problem already described in #145. Please let me know if it is, otherwise I'll cross reference this issue in my workaround in emit.rs.

You are supposed to remove the set of defined registers from the set of clobbered registers. Regalloc2 has the invariant that each register is either unchanged, marked as defined or marked as clobbered.

@frank-emrich I think this may "just" be an issue with the way the allocation constraints are specified to regalloc2. My mental model for an instruction's semantics and use- and def- points is roughly:

Early uses are read and early defs are written (in parallel, simultaneously).
Clobbers occur.
Late uses are read and late defs are written (in parallel, simultaneously).

All within a single instruction, so no spills/reloads or moves can be inserted between steps 1-2 or 2-3.
Given that, it seems like it should be a "too many live registers" error if we have a def at step 1, and step 2 clobbers (blocks) all registers in a class; there is no register remaining that can make it past the clobbers and carry the live value downward.
A solution might be to remove the registers that are def'd from the clobber set. The effect is the same anyway -- it blocks the register from being used by other values live across this instruction.

(Yep, exactly what @bjorn3 said; we raced to answer!)

Thanks for your responses!
@cfallin

A solution might be to remove the registers that are def'd from the clobber set.

I understand how to do that if my early defs were fixed, but I'm not sure how to do it if they are non-fixed registers, or if it's even possible in that case. After all, the clobber set is specified as a set of PRegs. Does that simply mean that what I'm trying to do can only be achieved with fixed early defs, or am I missing something?

@frank-emrich I guess there are two options: use fixed early defs, or use unconstrained early defs and leave enough "holes" in the clobbers for them to fit. Otherwise the problem as specified to regalloc is impossible to solve because the clobber-set leaves no space for any live values in the requested register class.

@cfallin

[...] or use unconstrained early defs and leave enough "holes" in the clobbers for them to fit

Ah, I hadn't thought of that option. Thanks for clarifying!
In any case, closing this issue since regalloc is behaving correctly. I just didn't have a good enough mental model of how it works to realize that I was asking for the impossible.

authors: bjorn3 cfallin frank-emrich


text:
does wamr support async programing?

If it does, I appreciate your examples, thanks much~

Hi, WAMR supports multi-thread and pthread library, including pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal and others, you can refer to the document and sample, not sure whether it meets your requirements?

authors: gneworld wenyongh

repo: bytecodealliance/wasm-micro-runtime


text:
🕳 Add virtual pipes to wasi-common

This introduces Handle implementations for readable and writable pipes, backed by arbitrary Read and Write types, respectively. In particular, this allows for easily providing, capturing, or redirecting WASI stdio without having to resort to OS-provided file descriptors.
The implementation is based heavily on wasi_common::virtfs::InMemoryFile, but without inapplicable operations like seek or allocate.
Note that these types are not 1:1 replacements for real pipes, because they do not support poll_oneoff.

I'm looking forward to the point where we can say that features like this should be implemented through link-time virtualization mechanisms, rather than traits in Wasmtime, but we're not there yet :-), so this overall looks good for now.

authors: acfoltzer sunfishcode

repo: bytecodealliance/wasmtime


text:
Backport #4239 (to_amode fix) to release-0.38 branch.

This is a cherry-pick of "x64 backend: fix to_amode with constant address (no registers). (#4239)"
If an address expression is given to to_amode that is completely
constant (no registers at all), then it will produce an Amode that has
the resulting constant as an offset, and (invalid_reg) as the base.
This is a side-effect of the way we build up the amode step-by-step --
we're waiting to see a register and plug it into the base field. If we
never get a reg though, we need to generate a constant zero into a
register and use that as the base. This PR adds a finalize_amode
helper to do just that.

I think https://github.com/bytecodealliance/wasmtime/pull/4243 should be backported too.


text:
test: check that the --vtune flag works

In #5628, it appeared that Wasmtime had regressed and the --vtune flag now resulted in errors. This test checks that using the flag does not result in an error (the expected behavior). It does not yet fix #5628.

Sure, should I #[ignore] the test so we can merge this and add a note in there to un-ignore it when fixed?

I don't have a preference either way. If you don't want to keep an open PR around I think it's fine to merge it #[ignore]d, but I think it's also fine to just leave this PR here until the underlying issue is sorted out.

This is superseded by #9185.

authors: abrown jameysharp


text:
Cranelift: Fix union node bitpacking

It turns out we have just been taking the newest rewrite's value for a eclass union and never actually comparing costs and taking the value with the minimum cost. Whoops!
Fixing this made some test expectations fail, which we resolved by tweaking the cost function to give materializing constants nonzero cost. This way we prefer -x to 0 - x.
We also made elaboration function break ties between values with the same cost with the value index. It prefers larger value indices, since the original value's index will be lower than all of its rewritten values' indices. This heuristically prefers rewritten values because we hope our rewrites are all improvements even when the cost function can't show that.

Last merge-queue test run seemed to show a real assert failure during compilation:
thread '<unnamed>' panicked at 'assertion failed: x < (1 << bits)', cranelift/codegen/src/ir/dfg.rs:557:9

weird that it only reproduces on the MSRV run and for an integration test?

I'm going to remove from the queue due to ^

It looks like we are creating a union of two values and the values' indices don't fit in the packed representation

Does anyone know how to run the tokio example, or at least build the wasms that it uses?
cargo build --target wasm32-wasi inside examples/tokio/wasm doesn't seem to actually produce any wasm files for me.

cargo build --target wasm32-wasi --manifest-path examples/tokio/wasm/Cargo.toml
cargo run --example tokio --features wasmtime-wasi/tokio

Hm I can't reproduce the assertion failure for that example.
But I did find an off-by-one bug in the assertion. It allows 0x00ff_ffff to be encoded as-is but that conflicts with the sentinal we use to represent 0xffff_ffff. Tweaked to fix the assertion.

Okay I was able to repro with the 1.71.0 toolchain. Interestingly enough, it seemed to hang for a while before actually panicking, when the other toolchains ran to completion almost immediately.

Still going (it is generating a lot of output) but it looks like we've gone into some kind of loop where we are unioning values like x, x+1, x+2, .... Since this only shows up on 1.71.0, I'm thinking this might be a miscompile in rustc/llvm?
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db0, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db1, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db2, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db3, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db4, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db5, y = 0xc29d09)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db6, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db7, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db8, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90db9, y = 0xc29d09)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dba, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dbb, y = 0xc29d1f)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dbc, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dbd, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dbe, y = 0xc29d09)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dbf, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dc0, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dc1, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dc2, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xe90dc3, y = 0xc29d09)

Yep, it just finished:
FITZGEN: packing union(tag = 11, ty = 79, x = 0xfffff9, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xfffffa, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xfffffb, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xfffffc, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xfffffd, y = 0xc29cf9)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xfffffe, y = 0xc29d09)
FITZGEN: packing union(tag = 11, ty = 79, x = 0xffffff, y = 0xc29cf9)
thread '<unnamed>' panicked at '16777215 does not fit into 24 bits (must be less than 16777215 to allow for a 0xffffffff sentinal)', cranelift/codegen/src/ir/dfg.rs:558:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I can't reproduce the test failure in CI. I'm also on linux x64 and using rust 1.73. Not sure what is up here.

Hey, I ran the fuzzer on RISC-V overnight on this branch, to check if there is something wrong with the RISC-V backend. I don't know if there is yet, but I think I got a reproduction of the issue that was happening in CI earlier.

Testcase
;; Run test case

test interpret
test run
set opt_level=speed_and_size
target riscv64gc has_zca has_zcd

function %a(i8 sext, i16, i64 sext, i128 uext, i64, i128 uext, i64 uext, i64 uext, i64 uext, i128 uext, i32 sext, f64, i64 sext) -> i8 fast {
    ss0 = explicit_slot 29
    ss1 = explicit_slot 17
    ss2 = explicit_slot 49
    ss3 = explicit_slot 52
    ss4 = explicit_slot 17
    ss5 = explicit_slot 17

block0(v0: i8, v1: i16, v2: i64, v3: i128, v4: i64, v5: i128, v6: i64, v7: i64, v8: i64, v9: i128, v10: i32, v11: f64, v12: i64):
    v54 -> v1
    v37 = rotl v0, v10
    v38 = rotl v37, v10
    v39 = rotl v38, v10
    v40 = rotl v39, v10
    v41 = rotl v40, v10
    v42 = rotl v41, v10
    v43 = select_spectre_guard v1, v10, v10
    v44 = bxor_not v43, v43
    v55 -> v44
    v45 = bitrev v42
    v46 = sextend.i128 v45
    v47 = rotl v45, v44
    v48 = rotl v47, v44
    v49 = select v48, v48, v48
    v50 = rotl v49, v44
    v51 = rotl v50, v44
    v52 = rotl v51, v44
    v53 = rotl v52, v44
    v58 -> v53
    v56 = select_spectre_guard.i32 v54, v55, v55
    v57 = bxor_not v56, v56
    v59 = bitrev.i8 v58
    v61 = rotl v59, v57
    v62 = rotl v61, v57
    v63 = select v62, v62, v62
    v64 = rotl v63, v57
    v65 = rotl v64, v57
    v66 = rotl v65, v57
    v67 = rotl v66, v57
    v68 = rotr v67, v54
    v69 = rotl v68, v57
    v70 = rotl v69, v57
    v71 = rotl v70, v57
    v72 = rotl v71, v57
    v73 = rotl v72, v57
    return v73
}

; run: %a(17, 4474, 4803839602528529, -10005959247738946646150328352768, 19070975, 281564249487374563584566874706289408, 8440, 0, 0, 0, 0, 0.0, 0) == 34

Egraphs Result `main`
function %a(i8 sext, i16, i64 sext, i128 uext, i64, i128 uext, i64 uext, i64 uext, i64 uext, i128 uext, i32 sext, f64, i64 sext) -> i8 fast {
block0(v0: i8, v1: i16, v2: i64, v3: i128, v4: i64, v5: i128, v6: i64, v7: i64, v8: i64, v9: i128, v10: i32, v11: f64, v12: i64):
    v43 = select_spectre_guard v1, v10, v10
    v91 = iconst.i32 0xffff_ffff
    v56 = select_spectre_guard v1, v91, v91  ; v91 = 0xffff_ffff, v91 = 0xffff_ffff
    v76 = iadd v10, v10
    v79 = iadd v76, v10
    v82 = iadd v79, v10
    v85 = iadd v82, v10
    v88 = iadd v85, v10
    v89 = rotl v0, v88
    v45 = bitrev v89
    v215 = iconst.i32 2
    v217 = rotl v45, v215  ; v215 = 2
    v59 = bitrev v217
    v308 = uextend.i32 v1
    v310 = isub v308, v215  ; v215 = 2
    v311 = ineg v310
    v404 = iconst.i32 0xffff_fffb
    v406 = iadd v311, v404  ; v404 = 0xffff_fffb
    v408 = rotl v59, v406
    return v408
}

Egraphs Result `fix-egraph-union`
function %a(i8 sext, i16, i64 sext, i128 uext, i64, i128 uext, i64 uext, i64 uext, i64 uext, i128 uext, i32 sext, f64, i64 sext) -> i8 fast {
block0(v0: i8, v1: i16, v2: i64, v3: i128, v4: i64, v5: i128, v6: i64, v7: i64, v8: i64, v9: i128, v10: i32, v11: f64, v12: i64):
    v43 = select_spectre_guard v1, v10, v10
    v251 = iconst.i32 0xffff_ffff
    v56 = select_spectre_guard v1, v251, v251  ; v251 = 0xffff_ffff, v251 = 0xffff_ffff
    v76 = iadd v10, v10
    v79 = iadd v76, v10
    v93 = iadd v79, v10
    v130 = iadd v10, v93
    v176 = iadd v10, v130
    v177 = rotl v0, v176
    v45 = bitrev v177
    v679 = iconst.i32 10
    v681 = rotl v45, v679  ; v679 = 10
    v59 = bitrev v681
    v376 = iconst.i32 0xffff_fffd
    v1116 = uextend.i32 v1
    v1161 = isub v376, v1116  ; v376 = 0xffff_fffd
    v1936 = rotl v59, v1161
    return v1936
}

This testcase spends a huge amount of time in egraphs with this PR and it now fails where it didn't before. Although I'm not 100% sure this isn't a bug in one of the rules that wasn't discovered previously.
I'm going to look into this again later today

Thanks for digging into that @afonso360!

authors: afonso360 alexcrichton cfallin fitzgen


text:
Get tests running again

With these changes the tests will run, but fail right now. In the test runner we
do
let doc = witx::parse(source).unwrap();

and this results in a module whose name is "-" which we eventually camel case
and get "", and then including this in our emitted Rust source results in
broken Rust code, which causes our tests to fail.
The module name definitely should not be "-" but it is not clear to me yet what
the name should be or which bit of code is to blame for this incorrect name.

👍

authors: alexcrichton fitzgen

repo: bytecodealliance/witx-bindgen


text:
【llm_perf issue】using byte_infer_perf/llm_perf/launch.py to test chatglm, but meet multi-process competing

错误描述
机器: h100-80g-hbm3
基于以下的chatglm-6b-xxx.json配置测试，在tp1, bs24, inputlen1024下报OOM

修改json配置为以下，从tp1, bs24, inputlen1024开始跑，tp1, bs24, inputlen1024可以正常运行

从代码https://github.com/bytedance/ByteMLPerf/blob/main/byte_infer_perf/llm_perf/launch.py#L260猜测是代码未能按照预期所示等待各配置子进程结束再launch下一个子进程，从而导致子进程发生GPU争抢，导致本能跑的配置在争抢环境下发生OOM
复现步骤
step1 launch container
docker run --net=host --pid=host --ipc=host --shm-size 64g --privileged -it --gpus all -v xxx:xxx --name xxxx nvcr.io/nvidia/pytorch:24.08-py3
step2 enter dir of launch.py
pip install -r requirements.txt
step3 修改workloads/chatglm2-torch-fp16-6b.json如以上所示
step4 run
python3 launch.py --hardware_type GPU --task chatglm2-torch-fp16-6b

@suisiyuan 你好，有空的时候可以帮忙看一看不？

@suisiyuan 你好，有空的时候可以帮忙看一看不？

好的，我这边看看，应该是进程管理的问题。

@suisiyuan 你好，有空的时候可以帮忙看一看不？

好的，我这边看看，应该是进程管理的问题。

感谢你的时间

repo: bytedance/ByteMLPerf


text:
opt: the get&set way of hashmap using xxhash

I have changed the Chinese to English.

Thanks, we do not need to open a new pr for this. We can use the previous pr such as #453 , and push all commits into the single branch~

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@bb7826f). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #454   +/-   ##
=======================================
  Coverage        ?   77.62%
=======================================
  Files           ?       59
  Lines           ?    10193
  Branches        ?        0
=======================================
  Hits            ?     7912
  Misses          ?     1942
  Partials        ?      339

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

pls rename the pr title  and reedit the commit msg， such as opt: the get&set way of hashmap using xxhash

Thanks! Good luck to my teacher!

Thanks~

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: lijinnan123:x: liuq19You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks, and Sonic has updated a lot,  we will close the PR

repo: bytedance/sonic


text:
update requirements to incorporate security fixes

I also incorporated some changes in setup.py.
Those changes are to standardize how we read files, as well as using a function to just read requirements rather than updating both!

thanks so much. that's going to save me doing it in 2 places. also strange i never linted the setup.py file. good for spotting that one. I'm still in process of adopting the linting style as preference. I'll get it in the next release which will likely be within a week.

authors: ShoGinn byteface

repo: byteface/domonic


text:
Fixed bug in PersonDirectory

This change is

Review status: 0 of 1 files reviewed at latest revision, 4 unresolved discussions.

app/src/main/java/edu/byu/suite/features/personDirectory/controller/PersonDirectoryMainActivity.java, line 220 at r1 (raw file):

					return;
				}
				showErrorDialog(byuError.getReadableMessage(), null);

This used to be like this (passing in null as the onClickListener) but then Hammad changed it, and I'm not sure why. It should definitely be null. I think Hammad doesn't realize that showErrorDialog("error", null) is not equivalent to showErrorDialog("error"). I'll send him a message explaining that.

app/src/main/java/edu/byu/suite/features/personDirectory/controller/PersonDirectoryMainActivity.java, line 232 at r1 (raw file):

			enqueueCall(createCall(), new ByuCallback<PersonResponseWrapper>(this) {
				@Override
				public void onSuccess(Call<PersonResponseWrapper> call, Response<PersonResponseWrapper> response) {

This part was a bug

app/src/main/java/edu/byu/suite/features/personDirectory/controller/PersonDirectoryMainActivity.java, line 243 at r1 (raw file):

				@Override
				public void onFailure(Call<PersonResponseWrapper> call, ByuError byuError) {
					showErrorDialog(byuError.getReadableMessage(), null); // Don't kick them out

This is also just me reverting a change that Hammad made

app/src/main/java/edu/byu/suite/features/personDirectory/controller/PersonDirectoryMainActivity.java, line 244 at r1 (raw file):

				public void onFailure(Call<PersonResponseWrapper> call, ByuError byuError) {
					showErrorDialog(byuError.getReadableMessage(), null); // Don't kick them out
					personAdapter.remove(personAdapter.getItemCount() - 1); // But don't try to load any more data

This is new - it seemed like a good idea

Comments from Reviewable

Review status: 0 of 1 files reviewed at latest revision, 4 unresolved discussions.

app/src/main/java/edu/byu/suite/features/personDirectory/controller/PersonDirectoryMainActivity.java, line 232 at r1 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
This part was a bug

How was this a bug? It looks like you just inlined a variable...

Comments from Reviewable

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion.

app/src/main/java/edu/byu/suite/features/personDirectory/controller/PersonDirectoryMainActivity.java, line 232 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
How was this a bug? It looks like you just inlined a variable...

Yes, that fixes the bug. What was happening was that we saved the index of the last position in the list (where null was) and then we added everything before that position. Then we tried to take out null by removing from the index where null had been before we inserted stuff. but null wasn't there anymore so it wasn't behaving as expected, and the app crashed

Comments from Reviewable

Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


text:
Hotfix/cannon commons

This change is

Reviewed 7 of 7 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


text:
start refactor of get_profiles

This will resolve Issue #111
Failing a few tests atm

@jklymak is this what you had in mind to resolve #111? get_profiles is now a separate function that works on the timeseries netCDF created by raw_to_timeseries. This should enable more flexible definition of profile_index before splitting into profiles/gridding.
Recently alseamar changed the way that dives are defined on the seaexplorer to a much more sensible method. It now starts a new dive file after the first GPS fix at surface, so we should be able to use a much simpler method to define profiles. Having factored out get_profiles  this can be written as a seperate function for end users to call.

@jklymak I've merged in the latest changes to main and fixed this PR for factoring out get_profiles, if that's still a goal.
The commit history is a bit of a mess after getting stale, so likely better to squash and merge

I've not looked at this carefully yet, but 1) it should remain back-compatible so the raw-to-timeseries methods could still make the profile extraction work. 2) I think the profile finding already is a separate method operating on xarrays?  So the to-do would be to make that function easier to access, make/lightly deprecate doing it in the raw-to-timeseries, and change the examples to use the external interface.

I think this will require a bit more planning, especially as any change to this will need end users to update their processing scripts. I'll close this PR for now and design something that is more robust. I'm wondering if a class based approach might work better

authors: callumrollo jklymak

repo: c-proof/pyglider


text:
fix xarray time attribute error

Fixes issue #7

The tests haven't been run for quite a while, so the new version of xarray being loaded is not compatible with the old code.  It'd be great if you could patch the slocum code as well.

Nice! I'm happy for this to be merged whenever.
If I may be so bold, it could be worth adding test suites on other Python versions, at least 3.7 and 3.9. Testing on 3.10 is still a bit tricky atm but could be added later

Thanks @callumrollo !


text:
Order Reset Button Issue in Add to Cart Section

Describe the bug
The 'Reset' button in the 'Add to Cart' section does not clear the checkout table, retaining added items and quantities despite resetting the price and items to zero.
To Reproduce
Steps to reproduce the behavior:

Go to 'Orders' in navigation
Click on 'Order Now'
Add items
Click 'Reset' button
See error

Expected behavior
When the 'Reset' button is utilized in the 'Add to Cart' section, it should completely reset the order, including both the price and the items to zero, ensuring a complete refresh of the checkout table by clearing all added items and their quantities.
Screenshots
Before Reset

After Reset

I would also be willing to change the Currency symbol to Dollars after the Reset button is clicked

Good find @ShaikhAman01  !!


text:
進行機能での持ち越し登録の方法を考える

進行で、finした場合に持ち越し登録されるが、秒数が+20秒される仕様になっている。
しかし、本戦が終了した際に秒数を打ち込むのでいちいち-20秒しなければならないのが面倒という意見が出たので、+20秒する仕様をなくすか考える

20秒プラスする仕様を継続する
20秒を消す仕様に移行する

の2つで投票を行う予定

20秒を消す仕様に変更


text:
jvm reload

fixes #25

@rultor merge

@rultor merge

@caarlos0 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@caarlos0 Done! FYI, the full log is here (took me 1min)

@jvm release, tag=0.1.4

license: mit


text:
CORS Only Returns Last Domain If List is Provided

Under settings > security > allowed domains I have listed two websites:
http://website.company.com,http://website2.company.com
When I do an ajax GET to <cachet host>/api/components from the first origin, Cachet sends back the second origin (http://website2.company.com) in the access-control-allow-origin header.

I believe that we're actually working with CORS incorrectly and this is something that needs fixing ASAP.

You'll also need to start using the L5 branch for the fix I'm afraid.

CC @joecohens

authors: blaskovicz jbrooksuk

repo: cachethq/Cachet


text:
Block-to-item mapping

There is an item-to-block mapping generated by matching items and blocks with the same identifier. Similarly, there should be a way to map a Block to Item, with the appropriate data.
This will be used to spawn item entities when a block is broken (player digging, falling block breaking, etc.)

Closing as implemented in #142. This can be used for breaking falling-blocks when they land on certain blocks.
Other features like digging drops will require loot tables, enchantments, etc., which can be tracked later.

repo: caelunshun/feather


text:
Implement enumeration of all simple paths in a CFG

This PR implements path enumeration for CFGs. All possible simple paths in the directed graph from source to sink are generated, as well as single unrolled versions for cycles (to execute the body for-loops and similar constructs at least twice).

The Codacy check fails, because it considers the test class to be too large. Thoughts?

@gandreadis I don't think the 70 line rule makes much sense for test classes, so I think we can ignore it. That doesn't mean our test classes can/should be 1k lines, but 70 is way too few. We should ignore/suppress it. I'll work on adding Detekt to Gradle this evening, then we can suppress some warnings manually and disable Detekt altogether in Codacy.

@JSAbrahams I've added some class-level documentation to the file

authors: FWDekker gandreadis

repo: cafejojo/schaapi


text:
Toy Regression: Only one iteration of SGD is done in training net one time

NOTE: In the above codes, X and Y_gt are initialized in init_net. So in each training, we get constant input X and Y_gt.
NOTE: I ran train_net two times, and got different w and b.
I thought caffe2 would get the best w and b with SGD in one training( workspace.RunNet(train_net.Proto().name) ), i.e. many iterations of gradient descent will be done to get the best w and b for loss function in one training. Looks like I was wrong:(
So my question is:  only one iteration of Gradient  Descent is done in one training, if we want to get the best w and b, we need to run the train_net for many times with the same X and Y_gt.
Is that right?
Thanks!

You are right, one call to RunNet only does a single iteration.
To make W and B converge you have to call RunNet more iterations.


text:
Training a Pretrained Model on the GPU

Hi,
I'm retraining the last layer of squeezenet and I would like to have it train on my GPU. I have added training operators to the model and I am getting the following error:
input: "conv10_b" output: "conv10_b_first_moment" name: "" type: "ConstantFill" arg { name: "value" f: 0 } device_option { }
The error indicates that the device options are not getting set on the operators I add to the model. I am setting them for the other operators  as follows:
ws.ResetWorkspace()
device_opts = caffe2_pb2.DeviceOption()
device_opts.device_type = caffe2_pb2.CUDA
device_opts.cuda_gpu_id = 0

Later, I update the network protobuf like so:
init_net_def.device_option.CopyFrom(device_opts)
pred_net_def.device_option.CopyFrom(device_opts)
train_model.param_init_net.AppendNet(core.Net(init_net_def))
train_model.net.AppendNet(core.Net(pred_net_def))

After this I add training operators like in the MNIST tutorial except I use the Adam optimizer. Should the device options be passed through automatically or do I add them as arguments somewhere? Also, when should I call
train_model.RunAllOnGPU()? Before the param_init_net.RunNetOnce call I'm guessing?

Hello @shankarapailoor ,
I am trying a similar thing. I want to retrained AlexNet trained ImageNet with my own database.
Have you achieved your goal?
Could you share your code?
Thanks.

Hi @mgp1994
I managed to get it to run on the GPU! Here is some of the relevant code:
    device_opts = caffe2_pb2.DeviceOption()
    device_opts.device_type = caffe2_pb2.CUDA
    device_opts.cuda_gpu_id = 0
    data_folder = '/home/shankara/dogcattrain/'
    arg_scope = {"order":"NCHW",
             "use_cudnn": True}
    train_model = model_helper.ModelHelper(name="dogcat_train", arg_scope=arg_scope)
    test_model = model_helper.ModelHelper(name="dogcat_test", arg_scope=arg_scope)
    trainer = ModelTrainer()
    data, label = trainer.add_input(
            train_model, batch_size=500,
            db=os.path.join(data_folder, 'dogcat-train-nchw-leveldb'),
            db_type='leveldb')

    add_dog_cat_network(train_model, data, device_opts)
    train_model.RunAllOnGPU()
    trainer.add_gradient_params(train_model, device_opts)
    trainer.add_accuracy(train_model, 'softmaxout', label, device_opts)
    trainer.add_training_operators(train_model, 'softmaxout', 'label', device_opts)
    trainer.add_bookkeeping_operators(train_model)

At the beginning of all the functions for add_gradient_params, add_accuracy, add_training_operators I included a with core.DeviceScope(device_options) statement. For example with the add_accuracy method for the trainer I have
    def add_accuracy(self, model, predictor, label, device_options):
        with core.DeviceScope(device_options):
            model.Accuracy([predictor, labeal], 'accuracy')
            ...

You might run into issues where there is a dimension mismatch on the GPU and not the CPU. To fix those you need to squeeze the dimensions of the input tensor that are of size 1. Basically a tensor of dimensions [101, 1024, 1, 1] -> [101, 1024]. You can look at the model.Squeeze function to fix that. In the last example to remove the last two dimensions you can do
model.Squeeze(predictor, 'predictor_squeezed', dims=[2,3])

where predictor is of dimension [101, 1024, 1, 1]

Thank a lot @shankarapailoor.
I didn't explain very well. I am more interested in load the parameters (wieghts and bias) from AlexNet on Imagenet. Once I have load the parameters, I want to retrain all the net with my database. Moreover, I have to change the last layer because my problem has two classes.
I would be very grateful if you can help me.
Thanks.

@mgp1994
Sure. I gave an answer here: https://github.com/caffe2/caffe2/issues/868 where I talked about how I changed the last layer and reinitialized the weights. Take a look and see if that is helpful


text:
Improve table detail presentation

Idea Statement

Format the total rows from a table. 6552590 > 6,552,590
Fix Last modified - I always get Invalid Date

Add details on the table schema in the Details view. something like BigQuery:

This is what I'm running on:

ClickHouse: Server version: 24.11.1.2557
CH-UI: ghcr.io/caioricciuti/ch-ui                                            latest

Feature implementation brainstorm
No response

done.
Schema:

Dates:

Better number read (and again dates)

nice! well done!!

authors: caioricciuti synack-ppetruneac

repo: caioricciuti/ch-ui


text:
Removing desktops

Just discovered this shell, and have been experimenting with it.  In doing so, I have created some desktops that I would like to clear, delete, disable or whatever term to eliminate them is proper.  Short of reconfiguring the installation is there a way to accomplish this?
While I recognize this is a pre-release edition, I hope someone will kindly assist me.  I have been rather impressed so far.  Using under Win 10 without replacing file explorer.
Thank you.

Are you referencing the virtual desktop system built in the windows 10?
Sent from my iPhone
On Jun 15, 2018, at 9:06 PM, GR8smoky <notifications@github.commailto:notifications@github.com> wrote:
Just discovered this shell, and have been experimenting with it. In doing so, I have created some desktops that I would like to clear, delete, disable or whatever term to eliminate them is proper. Short of reconfiguring the installation is there a way to accomplish this?
While I recognize this is a pre-release edition, I hope someone will kindly assist me. I have been rather impressed so far. Using under Win 10 without replacing file explorer.
Thank you.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159&data=02|01||9ec7d343939c4709223108d5d32564a2|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636647079902304690&sdata=fqAXoA8U5yvQp%2Ba8i7g7Af%2Fxn2WF739yswsbf4aNnk8%3D&reserved=0, or mute the threadhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAZcpfaMoYU2FDMIxmn4NDRAJkKQjks5t9FoVgaJpZM4UqTIk&data=02|01||9ec7d343939c4709223108d5d32564a2|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636647079902304690&sdata=4QJ6saCUy6j7WOkPv0uO4IzekojVXbLN%2FPO%2B27UepXA%3D&reserved=0.

No.  I am referring to what I believe are called Dynamic Desktops.
In an attempt to explain clearly, in Cairo go to and click on Places on top menu bar, then select Downloads; this will load all folders from that directory on to your screen that can now be scrolled through with the dynamic navigation toolbar.  Can that individual screen/desktop be later cleared or removed from showing in Cairo without deleting the directory from the HD/file explorer/system?
Hope this clears up my question.
Thanks for responding.

I believe this is accomplished by clicking the home button on the dynamic desktop navigation
Sent from my iPhone
On Jun 16, 2018, at 11:30 AM, GR8smoky <notifications@github.commailto:notifications@github.com> wrote:
No. I am referring to what I believe are called Dynamic Desktops.
In an attempt to explain clearly, in Cairo go to and click on Places on top menu bar, then select Downloads; this will load all folders from that directory on to your screen that can now be scrolled through with the dynamic navigation toolbar. Can that individual screen/desktop be later cleared or removed from showing in Cairo without deleting the directory from the HD/file explorer/system?
Hope this clears up my question.
Thanks for responding.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-397819810&data=02|01||c45a31e083cb48bed18a08d5d39e25db|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636647598552220022&sdata=sYWwoiB%2F0Yz9wv79k87%2BvhPIzqS7qPhJqGWeAojmgnc%3D&reserved=0, or mute the threadhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXASK1VNepK17KiyuO_8VP-sl4ytOrks5t9SSrgaJpZM4UqTIk&data=02|01||c45a31e083cb48bed18a08d5d39e25db|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636647598552220022&sdata=OquDGdjEoChtivdQNR61dleyc0bwl%2BfOkgx9smWh7QM%3D&reserved=0.

No, that does not accomplish my goal, it just rotates the undesired "desktop" or screen out of view.
What I want to accomplish is to remove/delete the screen from Cairo's rotation scheme.  What has occurred is that in experimenting I did some things I would like to undo, and keep some other things (like the taskbar configuration), so as to not start from scratch again. Plus I know I will make errors and want to make changes again in the future.
I have played with options, key combos, and context screens to no avail so far.  Now wondering if there is a profile or configuration file that could be modified.
If any ideas or suggestions, I'd appreciate them.  Thanks for your help so far. Kind of late here so will not work on anything until tomorrow.

The only desktop that Cairo saves is the default one set in Cairo Settings. Are you talking about the back/forward buttons? The back button traverses up the directory structure, while the forward button traverses desktop history. However, this is not persisted across restarts of Cairo.

I think this is a misunderstanding of the functionality. The feature is the directory that the desktop polls to show the desktop icons can be changed. You are not creating multiple desktops, you are just changing where the desktop’s icons come from. Think of it like an explorer window.
Sent from my iPhone
On Jun 16, 2018, at 11:02 PM, GR8smoky <notifications@github.commailto:notifications@github.com> wrote:
No, that does not accomplish my goal, it just rotates the undesired "desktop" or screen out of view.
What I want to accomplish is to remove/delete the screen from Cairo's rotation scheme. What has occurred is that in experimenting I did some things I would like to undo, and keep some other things (like the taskbar configuration), so as to not start from scratch again. Plus I know I will make errors and want to make changes again in the future.
I have played with options, key combos, and context screens to no avail so far. Now wondering if there is a profile or configuration file that could be modified.
If any ideas or suggestions, I'd appreciate them. Thanks for your help so far. Kind of late here so will not work on anything until tomorrow.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-397851310&data=02|01||cc8c977d92054899b7c108d5d3fec98a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648013615277304&sdata=eQJuN36rBxpZxml6GZk%2BXqj2RB%2FA8mdvA5USJzbaJak%3D&reserved=0, or mute the threadhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAXGbavJNGUskrsndgAsxzMNkCZQaks5t9cbOgaJpZM4UqTIk&data=02|01||cc8c977d92054899b7c108d5d3fec98a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648013615277304&sdata=cnqLOOVqAB8dw1bgju9TrMC2utSrrFlpanfNAVAYIsA%3D&reserved=0.

I think this is a feature request to be able to view and remove undesired Dynamic Desktop history. My recommendation for such a feature would be to either click and hold OR right click the Dynamic Desktop navigation to show a history menu. This menu would allow direct navigation to that entry on click and also have an [x] button to the right for removal. Since the Dynamic Desktop navigation can be moved around the  history menu would have to be location aware so that it’s not display off screen. On other request that comes to mind while discussing this is to have a configurable limit to the length of history that is stored  from one to ∞ ( or some other reasonable limit, I don’t have the source open and I don’t remember what I originally coded it as )
Sent from my iPhone
On Jun 17, 2018, at 1:13 AM, Sam Johnson <notifications@github.commailto:notifications@github.com> wrote:
The only desktop that Cairo saves is the default one set in Cairo Settings. Are you talking about the back/forward buttons? The back button traverses up the directory structure, while the forward button traverses desktop history. However, this is not persisted across restarts of Cairo.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-397855324&data=02|01||34db6ae5cbd74d0b73ba08d5d4111cd2|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648092310582777&sdata=ZXiOWWT5G4L1fzOvDl1e%2FiNaaX4j0MIRxy439XZneuo%3D&reserved=0, or mute the threadhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAVUslNeEOr0ruYZFDk0q3K-23I07ks5t9eWNgaJpZM4UqTIk&data=02|01||34db6ae5cbd74d0b73ba08d5d4111cd2|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648092310582777&sdata=JitnRcYom%2BycGaFMoCvdPWffrGArSGWEVxiYgKBxtXo%3D&reserved=0.

I added a proof of concept to my fork
https://github.com/josuave/cairoshell
Sent from my iPhone
On Jun 17, 2018, at 1:13 AM, Sam Johnson <notifications@github.commailto:notifications@github.com> wrote:
The only desktop that Cairo saves is the default one set in Cairo Settings. Are you talking about the back/forward buttons? The back button traverses up the directory structure, while the forward button traverses desktop history. However, this is not persisted across restarts of Cairo.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-397855324&data=02|01||34db6ae5cbd74d0b73ba08d5d4111cd2|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648092310582777&sdata=ZXiOWWT5G4L1fzOvDl1e%2FiNaaX4j0MIRxy439XZneuo%3D&reserved=0, or mute the threadhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAVUslNeEOr0ruYZFDk0q3K-23I07ks5t9eWNgaJpZM4UqTIk&data=02|01||34db6ae5cbd74d0b73ba08d5d4111cd2|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648092310582777&sdata=JitnRcYom%2BycGaFMoCvdPWffrGArSGWEVxiYgKBxtXo%3D&reserved=0.

I think I am beginning to get things clearer.
Per Dremin commit, it is the back button screens I'd like to erase -- just the screens not actually the directories or files themselves. Those back button screens do persist from close to restart (at least using windows as file manager).
Per josuave commit, if I follow correctly, I believe that addresses what I seek.  Have not been able to look at proof of concept, yet.
I do realize profile in user account does not have any bearing.
Thank you both.

Just a final comment here.
Thanks for all your help. Looked at proof of concept, but way above my pay grade.
Sorry I can not be of more help in arriving at a solution.

That’s OK, I did notice a small bug in the WPF implementation of the Browse button’s context menu. In some cases I need to double right click to get the context menu opening function to react appropriately.
Sent from my iPhone
Jun 17, 2018, at 8:32 PM, GR8smoky <notifications@github.commailto:notifications@github.com> wrote:
Just a final comment here.
Thanks for all your help. Looked at proof of concept, but way above my pay grade.
Sorry I can not be of more help in arriving at a solution.
—
On
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-397917177&data=02|01||23fb42e6b0f44733e3dc08d5d4b2ffc9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648787607083672&sdata=1ZQE9yZ8Ve3w0hSOICsFLvIMdjdTPE6JnlQi120ybYo%3D&reserved=0, or mute the threadhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAUQITOElQLy7x8S3e03WwcdkgQTAks5t9vUngaJpZM4UqTIk&data=02|01||23fb42e6b0f44733e3dc08d5d4b2ffc9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636648787607083672&sdata=pqL8XxRaFk6LhZzHkda3C%2FhB%2FSgEfyAAiyIf%2FhGESMQ%3D&reserved=0.

@josuave - were you planning on finishing this in your fork?

I haven’t had much time lately to look at this. I’ll try to pull it back up this weekend and review. I need to add a remove button [x] to each menu item and I’m also not sure where the right click bug is coming from yet.
Sent from my iPhone
On Jun 27, 2018, at 10:38 PM, Sam Johnson <notifications@github.commailto:notifications@github.com> wrote:
@josuavehttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjosuave&data=02|01||7f74c5ef6a4c493cd64b08d5dca02d92|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636657502865190827&sdata=qNwdl%2F2ebhm5wr3qgB9EbjXbDyIpaO2jDqIc07hHLeg%3D&reserved=0 - were you planning on finishing this in your fork?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-400892405&data=02|01||7f74c5ef6a4c493cd64b08d5dca02d92|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636657502865190827&sdata=6b71CX5ovnAySmJgv3nqGwrYYQww4Fr8kZr%2B4GcxuhE%3D&reserved=0, or mute the threadhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAYTwFjUkjO01BRc4FKjDg-DRuLNKks5uBEGNgaJpZM4UqTIk&data=02|01||7f74c5ef6a4c493cd64b08d5dca02d92|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636657502865190827&sdata=nT6MNBvsWADO3Cz%2BNBRUQYGRoouayI2O%2Bs94MoLttQk%3D&reserved=0.

Just for clarification: The bug is actually with the built-in contextmenu opening event.
Sent from my iPhone
On Jun 27, 2018, at 10:38 PM, Sam Johnson <notifications@github.commailto:notifications@github.com> wrote:
@josuavehttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjosuave&data=02|01||7f74c5ef6a4c493cd64b08d5dca02d92|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636657502865190827&sdata=qNwdl%2F2ebhm5wr3qgB9EbjXbDyIpaO2jDqIc07hHLeg%3D&reserved=0 - were you planning on finishing this in your fork?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-400892405&data=02|01||7f74c5ef6a4c493cd64b08d5dca02d92|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636657502865190827&sdata=6b71CX5ovnAySmJgv3nqGwrYYQww4Fr8kZr%2B4GcxuhE%3D&reserved=0, or mute the threadhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAYTwFjUkjO01BRc4FKjDg-DRuLNKks5uBEGNgaJpZM4UqTIk&data=02|01||7f74c5ef6a4c493cd64b08d5dca02d92|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636657502865190827&sdata=nT6MNBvsWADO3Cz%2BNBRUQYGRoouayI2O%2Bs94MoLttQk%3D&reserved=0.

@josuave is it possibly due to the toolbar not having focus on first right-click?

This is odd. It seems to be something. I’m thinking of removing the contextmenu on the button itself and on right click of the button show an standalone contextmenu that is not bound to any control. I left my dev laptop back home so I won’t be able to look again until this weekend.
Sent from my iPhone
On Jul 3, 2018, at 7:44 PM, Sam Johnson <notifications@github.commailto:notifications@github.com> wrote:
@josuavehttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjosuave&data=02|01||0293b2c430684c01599608d5e13edd11|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636662582463674442&sdata=B71pCmPCbh8Dd0uYjMrtIIOdtP%2BfogUEv0%2FoCSMJA8c%3D&reserved=0 is it possibly due to the toolbar not having focus on first right-click?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcairoshell%2Fcairoshell%2Fissues%2F159%23issuecomment-402322084&data=02|01||0293b2c430684c01599608d5e13edd11|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636662582463674442&sdata=3F7d3bVwct%2BDrH9T%2FhbfWMzHQAkqJkad1k3%2Bx6%2BXmA0%3D&reserved=0, or mute the threadhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGxXAQk82VlFlTHltSIkh1hbPZ2KJezhks5uDAHFgaJpZM4UqTIk&data=02|01||0293b2c430684c01599608d5e13edd11|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636662582463674442&sdata=mu%2F4Mh2y6ScODVUE9K%2BfJOz2VNNQYVb%2B4l73rEZMoAI%3D&reserved=0.

The work done for this by @josuave will be available the next release.

Thanks for head's up and all the work done on this issue

authors: GR8smoky dremin josuave

repo: cairoshell/cairoshell


text:
Add OS to DotNetPublishSettings

Add --os <OS> to dotnet-publish
Fixes #4107
Please review.
Thank you in advance

Please review

We're looking into the impact on addins, as this is a breaking change to the public API, to decide if we can merge it now for v3.1.0 or if it has to wait for the next major.

authors: Marusyk augustoproiete

repo: cake-build/cake


text:
Suggestion: Don't keep the binaries in git.

Instead , upload them when you make a release , to the "additional binaries section"

It's more accessible , and in general , keeping binaries in git is a bad idea.

ohhh We need to publish them to npm

Hey @Pandademic , The reason the cc binary is there, is so that we can directly publish to NPM.
Also, in general, git handles binary files very well, but yes, it can't handle merging of files and stuff, which we're not concerned with anyway.

authors: Dhravya Pandademic kekda-py

repo: cake-cutter/cc


text:
🛑 xmr-node.cakewallet.com:18081 is down

In 3a66f70, xmr-node.cakewallet.com:18081 (xmr-node.cakewallet.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: xmr-node.cakewallet.com:18081 is back up in 2f98f33 after 19 minutes.

repo: cake-tech/upptime-cakewallet


text:
Plugin won't activate

Hi everyone,
I am struggeling to install the plugin successfully.
After hitting "Install" in the marketplace, it all seems normal and installation is exited with a success message.

However, in the plugin-window it tells me it was not activated due to a crash (it didn't crash during installation!) and therefore is not activated. I need to reinstall or aktivate it.

Reinstall is greyed out, and upon hitting activate plugin, the Plugin does not have a name anymore and the program stays in "activating" forever.

Firmware is 0.2.5, Software 5.3.1.14222 (both newest)
Any help available? =(

Hi,
The market plugin (1.0.0) is buggy :  there was a mistake in a classname so the UI doesn't detect it well.
Simply restart the ui and go the profile section to choose the MSFS Plugin.
The other solution is to use a more recent plugin release (2.1.0) for here.

Yeah ... I'll probably use the newest from here then. Thank you :)

authors: Gabbalo calibx

repo: calibx/msfsdeck


text:
The DateDialog's header's head too long

When I using DatePicker Component.The Datpicker Dialog's height is too long so I cannot see the picker.But I didn't set any style on that div.It's height is 100% by you set on the element style.How can I resolve this problem.

This issue is similar to this one https://github.com/callemall/material-ui/issues/2034.

@oliviertassinari I have resolved this problem.I forget add ,maybe some style or attributes maybe dependency this.No need to fix any code.

@lockelee1015 That's good to know.

repo: callemall/material-ui


text:
[Dialog] fix overflow.

Fixes #3459.

All good, thanks a lot @mthenw :+1:

authors: alitaheri mthenw


text:
[AppNavDrawer] Links added to components in the left nav menu

Now the components on the left nav have got links can be be opened in a new tab with a right click
Closes #2720
Update of #3880

[ ] PR has tests / docs demo, and is linted.
[ ] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[ ] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

On hold pending #4197

@mbrookes #4197 is merged

@aahan96 You can remove linkButton now.

Ping @aahan96 😄

Closing due to lack of movement.

@nathanmarks Can you check the new PR, please! 😄

authors: aahan96 mbrookes nathanmarks


text:
[RadioGroup] Add tests for edge cases

Focus with no radios

Internal radios should fire onChange

on mount register internal radios to this.radios

[x] PR has tests / docs demo, and is linted.

[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".

[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

I'm not sure this still needs revision?

@agamrafaeli Absolutely. "Needs revision" isn't removed automatically, as there may be other reasons "Needs revision" was added that aren't addressed by the most recent push.

I'm gonna fix the issue once merged. +0.4% @agamrafaeli Thanks.

authors: agamrafaeli mbrookes oliviertassinari


text:
[core] Change style API

Propose the following improvements:

allow all the class names to be extended with the classes property, so we stop using the xxxClassName pattern. That's pretty close to react-css-themr.

// Before
// How can I do that, should a submit a PR to expose a `roundedClassName`?

// After
<Paper classes={{ rounded: 'my-rounded-implementation' }} />

remove the duplication between the theme and the styleManager as we can use
this.context.styleManager.theme over this.context.theme.
I have migrated one component, the Paper with that new approach. If we are happy with that, I can convert the whole code base.
[x] Update the docs
[x] Automatically generate the classes docs
[ ] Migrate the code base
[ ] ref handling and instance method access

@rosskevin Thanks for the feedback, I'm going one step further: auto docs generation 💅 .


text:
docs: monospaced section not parsed correctly

Description
At https://callowayproject.github.io/bump-my-version/#visualize-the-pre_n-versioning-path, the depiction of show-bump output is parsed like a run-on sentence. The corresponding section at https://github.com/callowayproject/bump-my-version?tab=readme-ov-file#visualize-the-pre_n-versioning-path is OK.
The difference might be due to a leading space before the closing triple backticks at README.md:214. I tried to test that in a fork but ran out of time before I figured out how to get GitHub Pages to publish anything.

Thank you fr the feedback! It is rare to get any feedback on documentation. I appreciate it and will get it fixed today.

authors: coordt irons

repo: callowayproject/bump-my-version


text:
Add ping tests and spec.

Add tests to cover the aggregator ping endpoint.
Add openapi reference spec.

Ci fails due to https://github.com/calyptia/cloud/pull/497

repo: calyptia/api


text:
Introducing corrections for yamllint

What type of PR is this?
Add one of the following kinds:

correction

What this PR does / why we need it:
While preparing PR for linting rules, it occurred that yamllint produces  large number of errors (mainly trailing spaces).
I propose to merge this changes before introducing the linting rules workflows configuration, otherwise the errors will be raised by Megalinter.
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:
Changelog input
yaml linting errors cleaned up

Additional documentation
code/API_definitions/geofencing.yaml
  Error: 6:1 [trailing-spaces] trailing spaces
  Error: 8:1 [trailing-spaces] trailing spaces
  Error: 10:1 [trailing-spaces] trailing spaces
  Error: 11:152 [trailing-spaces] trailing spaces
  Error: 12:1 [trailing-spaces] trailing spaces
  Error: 14:1 [trailing-spaces] trailing spaces
  Error: 16:1 [trailing-spaces] trailing spaces
  Error: 18:1 [trailing-spaces] trailing spaces
  Error: 19:55 [trailing-spaces] trailing spaces
  Error: 21:1 [trailing-spaces] trailing spaces
  Error: 23:1 [trailing-spaces] trailing spaces
  Error: 25:1 [trailing-spaces] trailing spaces
  Error: 27:1 [trailing-spaces] trailing spaces
  Error: 29:1 [trailing-spaces] trailing spaces
  Error: 31:1 [trailing-spaces] trailing spaces
  Error: 33:92 [trailing-spaces] trailing spaces
  Error: 34:1 [trailing-spaces] trailing spaces
  Error: 37:114 [trailing-spaces] trailing spaces
  Error: 38:1 [trailing-spaces] trailing spaces
  Error: 41:1 [trailing-spaces] trailing spaces
  Error: 43:1 [trailing-spaces] trailing spaces
  Error: 44:148 [trailing-spaces] trailing spaces
  Error: 45:63 [trailing-spaces] trailing spaces
  Error: 46:161 [trailing-spaces] trailing spaces
  Error: 54:104 [trailing-spaces] trailing spaces
  Error: 55:1 [trailing-spaces] trailing spaces
  Error: 57:1 [trailing-spaces] trailing spaces
  Error: 58:65 [trailing-spaces] trailing spaces
  Error: 464:1 [trailing-spaces] trailing spaces
  Error: 474:1 [trailing-spaces] trailing spaces
  Error: 476:1 [trailing-spaces] trailing spaces
  Error: 503:28 [trailing-spaces] trailing spaces
  Error: 504:86 [trailing-spaces] trailing spaces
  Error: 505:122 [trailing-spaces] trailing spaces
  Error: 524:126 [trailing-spaces] trailing spaces
  Error: 529:87 [trailing-spaces] trailing spaces
  Error: 530:126 [trailing-spaces] trailing spaces
  Error: 533:29 [trailing-spaces] trailing spaces
  Error: 539:51 [trailing-spaces] trailing spaces
  Error: 540:165 [trailing-spaces] trailing spaces
  Error: 541:102 [trailing-spaces] trailing spaces
  Error: 542:126 [trailing-spaces] trailing spaces
  Error: 543:118 [trailing-spaces] trailing spaces
  Error: 699:1 [trailing-spaces] trailing spaces
  Error: 710:1 [trailing-spaces] trailing spaces
  Error: 721:1 [trailing-spaces] trailing spaces
  Error: 732:1 [trailing-spaces] trailing spaces
  Error: 743:1 [trailing-spaces] trailing spaces
  Error: 754:1 [trailing-spaces] trailing spaces

code/API_definitions/location-retrieval.yaml
  Error: 5:65 [trailing-spaces] trailing spaces
  Error: 9:93 [trailing-spaces] trailing spaces
  Error: 11:84 [trailing-spaces] trailing spaces
  Error: 15:1 [trailing-spaces] trailing spaces
  Error: 18:92 [trailing-spaces] trailing spaces
  Error: 19:1 [trailing-spaces] trailing spaces
  Error: 20:107 [trailing-spaces] trailing spaces
  Error: 54:65 [trailing-spaces] trailing spaces
  Error: 117:11 [indentation] wrong indentation: expected 12 but found 10
  Error: 216:1 [empty-lines] too many blank lines (3 > 2)
  Error: 224:26 [trailing-spaces] trailing spaces
  Error: 230:1 [trailing-spaces] trailing spaces
  Error: 256:13 [trailing-spaces] trailing spaces
  Error: 263:20 [trailing-spaces] trailing spaces
  Error: 290:16 [trailing-spaces] trailing spaces
  Error: 293:18 [trailing-spaces] trailing spaces
  Error: 298:15 [trailing-spaces] trailing spaces
  Error: 308:1 [trailing-spaces] trailing spaces
  Error: 408:18 [trailing-spaces] trailing spaces

code/API_definitions/location-verification.yaml
  Error: 5:88 [trailing-spaces] trailing spaces
  Error: 11:118 [trailing-spaces] trailing spaces
  Error: 12:1 [trailing-spaces] trailing spaces
  Error: 14:145 [trailing-spaces] trailing spaces
  Error: 18:288 [trailing-spaces] trailing spaces
  Error: 45:65 [trailing-spaces] trailing spaces
  Error: 115:24 [trailing-spaces] trailing spaces
  Error: 127:59 [trailing-spaces] trailing spaces
  Error: 136:102 [trailing-spaces] trailing spaces
  Error: 143:50 [trailing-spaces] trailing spaces
  Error: 160:11 [indentation] wrong indentation: expected 12 but found 10
  Error: 212:16 [trailing-spaces] trailing spaces
  Error: 215:18 [trailing-spaces] trailing spaces
  Error: 220:15 [trailing-spaces] trailing spaces
  Error: 229:25 [trailing-spaces] trailing spaces
  Error: 236:23 [trailing-spaces] trailing spaces
  Error: 339:1 [trailing-spaces] trailing spaces
  Error: 348:83 [trailing-spaces] trailing spaces

@rartych, please you can regenerate this and resolve the conflicts now. Thanks

authors: jlurien rartych

repo: camaraproject/DeviceLocation


text:
Error when connecting to follower (broker)

I'm getting connection errors when restarting zeebe broker leader node (switch to follower) in a 3 node zeebe cluster on-premise.
2021-09-08 09:45:30.299  WARN 1 --- [nt_1.internal-4] c.h.c.i.c.ClientConnectionManager        : hz.client_1 [dev] [4.2.2] Unable to get live cluster connection, retry in 1473 ms, attempt: 9, cluster connect timeout: 30000 ms, max backoff: 30000 ms

@bkomac thank you for reporting. Please share more information about your environment (e.g. configuration).
What are the steps to reproduce the failure?

You can start with a broker cluster configuration like in https://github.com/camunda-community-hub/zeebe-docker-compose/blob/master/cluster/docker-compose.yml, but with 3 partitions (if this matters).
Cluster status:
Cluster size: 3
Partitions count: 3
Replication factor: 3
Gateway version: 1.1.2
Brokers:
Broker 0 - zeebe-broker-0:26501
Version: 1.1.2
Partition 1 : Leader, Healthy
Partition 2 : Leader, Healthy
Partition 3 : Follower, Healthy
Broker 1 - zeebe-broker-1:26501
Version: 1.1.2
Partition 1 : Follower, Healthy
Partition 2 : Follower, Healthy
Partition 3 : Leader, Healthy
Broker 2 - zeebe-broker-2:26501
Version: 1.1.2
Partition 1 : Follower, Healthy
Partition 2 : Follower, Healthy
Partition 3 : Follower, Healthy
Simple monitor is configured to connect to zeebe-broker-0 within Docker network.
- zeebe.client.broker.contactPoint=zeebe-broker-0:26500
- zeebe.client.worker.hazelcast.connection=zeebe-broker-0:5701
If zeebe-broker-0 is restarted and the Leaders are moved to other nodes, the hazelcast or broker connection fails and never reconnects again, till we force Leaders to move back to zeebe-broker-0 (ie. restarting other two nodes).

The behavior sounds expected. The simple monitor is connected to broker-0. If this broker is not the leader anymore then the connection to Hazelcast is interrupted. The exporter is only running on the partition leaders - not on the followers.
In your scenario with a cluster of three nodes, I recommend using a remote/dedicated Hazelcast instance/cluster. So, there is a fixed Hazelcast instance where the simple monitor can connect to. A leader change would not affect the monitor. See here how to configure the exporter.
Does this help you?

I'm closing this issue because of inactivity. Feel free to reopen if the issue is still relevant.


text:
Add identity IT

Integrate in the current IT test identity, to verify whether the services are coming up and we can log in to identity/keycloak. This is later also necessary to access operate and tasklist.
Details:

In order to log in we need to port-forward to identity (:8080) and keycloak (:18080)
We need to get the log in URL from identity (GET /auth/login to resolve url with session code)
Login with session URL and demo:demo user
After log in we get a JWT, which we verify on a identity resource

Since all of this can be quite flaky, due to the properties of distributed systems (many dependency's and fragile environment) we retry the log in.
Dear reviewers:
@oleschoenburg just check whether you understand what is happening. I will later do some more refactoring to split the functions in separate files etc.
@dlavrenuek just check whether it makes sense how we do the log in (it should be like we discussed)
@menski no need to review it, just for you if you want to check it out (since you were interested)

Based on https://github.com/camunda/camunda-platform-helm/pull/263 and @dlavrenuek we found the issue with the Identity tests, we used before a role (operate) which didn't exist if operate is not configured. This is fixed now. I will go ahead and merge this.

repo: camunda/camunda-platform-helm


text:
🛑 Ubuntu.com smart start guide is down

In 26bb24d, Ubuntu.com smart start guide (https://ubuntu.com/smartstart/guide) was down:

HTTP code: 503
Response time: 76 ms

Resolved: Ubuntu.com smart start guide is back up in 42d9665.

repo: canonical-web-and-design/upptime


text:
NRPE binds on all network interfaces

By default, the NRPE server is set up to listen on all network interfaces. No option is given to bind NRPE on a specific interface only. This could pose security risks.

(by aieri)
This is a valid point. Since we already explicitly list IPs in allowed_hosts, we could simply look them up in the routing table and bind only to the corresponding interfaces.

repo: canonical/charm-nrpe


text:
Add ability to customize router exporter listen port

Issue
The default router exporter listen port in mysqlrotuer-exporter versions < 6.0.0 is 49152 (which is an ephemeral port that is occasionally used by MySQLRouter to connect to MySQL) leading to port conflicts with MySQLRouter.
Solution
Add ability to specify a custom listen port in the snap/rock

Not documented anywhere - router is notorious for not having comprehensive detailed documentation. However, I did see mysqlrouter <-> mysql connections whose ports were around 49152. After customizing listen-port to 9152 (https://github.com/canonical/mysql-router-operator/actions/runs/9809259651/job/27093449442?pr=154), I was able to re-run exporter tests 10 times without an error we saw frequently
Furthermore, upstream released v6.0.0 where the default listen port is changed. We can request a rebuild of our PPA and use this version in the near future

I think being able to customize port is still a good addition regardless. Furthermore, I would like to allocate time for proper upgrade to v6.0.0 of router exporter (which may contain other changes). I also would like to take incremental steps to resolve the issue - the first being customizing listen port and the second being requesting a rebuilding of the PPA and upgrading to this PPA version

I am not sure that we would have a valid reason to drop the --listen-port customization on our side. What would we do if we find out that there is another issue with the new default port 9152? Or if we get a requirement that we should use a port other than the default port in upstream? It is already a configurable option in mysql-router-exporter, so I think that it being configurable in the snap is not too much of a leap
With Alex out this week, we can reach out to the server team to rebuild the exporter PPA if the consensus is adamantly against adding a customization of the listen-port. However, I stand firmly by the opinion that adding customization of listen-port is logical

repo: canonical/charmed-mysql-snap


text:
Integration tests for COS integration for OpenStack

Overview
Follow-up to https://github.com/canonical/github-runner-operator/pull/266 to provide integration tests running on the openstack cloud.
An integration test related to COS and repo policy compliance will be provided in a follow-up PR.
The OpenStack tests are not yet included in the CI, as there is another PR working on getting Openstack to work on the CI: https://github.com/canonical/github-runner-operator/pull/269
This PR does also refactor the helper modules. Due to parallel development on the openstack integration tests, the other integration tests have not been tested to see if they still work and this will need to be investigated in a follow-up.
The openstack applicable tests are marked now with an openstack pytest mark.
This PR also fixes/adds:

Private ssh keys have now correct permission and are owned by ubuntu user (to avoid ssh permission warning)
RunnerStop metric is also issued on abnormal termination
More context on pull metrics file errors (add a warning log that the metrics file size could not be determined)

Rationale
Add integration tests to ensure proper functioning.
Juju Events Changes
n/a
Module Changes
A separate package has been introduced and the helper modules have been placed there. There is a module for LXD and Openstack that contains cloud specific code. An interface InstanceHelper has been defined which is implemented for both clouds. It is required to handle cloud specific helper code as run_in_instance' or ensure_one_runner' or `get_runner_name'.
The test_charm_metrics_{success,failure} tests have been adapted and the openstack applicable tests are marked with an openstack mark.
Beyond that:

openstack_manager: Now writes ssh key with correct permission and ubuntu user
openstack_userdata.j2: Fix case where write_post_metrics function is not called on non-zero exit code of previous command

Library Changes

Checklist

[x] The charm style guide was applied
[x] The contributing guide was applied
[x] The changes are compliant with ISD054 - Managing Charm Complexity
[x] The documentation is generated using src-docs
[x] The documentation for charmhub is updated.
[x] The PR is tagged with appropriate label (urgent, trivial, complex)

@yanksyoon I think you can merge this, when you approve it.

authors: cbartz yhaliaw

repo: canonical/github-runner-operator


text:
Are we really going to have more than 1 layer of closures nested?

Harmonize this in prometheus_scrape so we don't need the horrible _recurse_call_chain thing.
Originally posted by @PietroPasotti in https://github.com/canonical/grafana-agent-k8s-operator/pull/95#discussion_r1127761141

Actually done! It just needs a rebuild of grafana-agent-k8s with the new lib.


text:
Uninstall and cleanup

In the case when MAAS will be installed and reinstalled, sometimes with anvil, sometimes with snap or deb there needs to be a way how to cleanup and have environment ready for any other installation, so no leftovers prevent clean install with any of the possible methods.
There are basically two scenarios which needs to be covered

when anvil installation worked as expected, is it enough to run juju destroy-model?
when something goes wrong during install and juju cannot be used

The second scenario will leave postgres snap installed on the machine, it would have mounted data for example
I ended up using combination of these commands
juju destroy-model admin/controller
sudo /usr/sbin/remove-juju-services
sudo umount /var/snap/charmed-postgresql/common
sudo umount /var/lib/snapd/snaps/charmed-postgresql_96.snap

for i in charmed-postgresql juju juju-db maas maas-anvil ; do sudo snap remove $i --purge ; done
rm -rf ~/.local/share/juju
sudo pkill haproxy

It would be great to have some script with smarts which would take care of both successful and failed installation.

Here is my big hammer temporary solution which seams to cleanup all. It is not nice at all but you may find some inspiration there
# timeout is set because I saw cases where it did not finish in 30 minutes and it was not progressing
ssh 10.244.40.30 "timeout 900 juju destroy-controller --destroy-all-models --destroy-storage --no-prompt anvil-controller"
for i in 30 31 32 ; do ssh 10.244.40.$i "sudo /usr/sbin/remove-juju-services" ; done
for i in 30 31 32 ; do ssh 10.244.40.$i rm -rf .local/share/juju/ ; done
for i in 30 31 32 ; do ssh 10.244.40.$i sudo snap stop charmed-postgresql ; done
for i in 30 31 32 ; do ssh 10.244.40.$i "sudo umount /var/snap/charmed-postgresql/common; sudo umount /var/lib/snapd/snaps/charmed-postgresql_115.snap" ; done
for i in 30 31 32 ; do ssh 10.244.40.$i "for i in charmed-pgbouncer charmed-postgresql juju juju-db maas-anvil ; do sudo snap remove --purge \$i; done; sudo snap unalias patronictl"; done
for i in 30 31 32 ; do ssh 10.244.40.$i "sudo rm -rf /var/lib/juju" ; done

repo: canonical/maas-anvil


text:
Add support for proxy-send-timeout and proxy-connect-timeout annotations

Enhancement Proposal
As described in the title, these would be useful charm configuration parameters to expose. They have the same type as the proxy-read-timeout configuration parameter on the charm.

Yes, no problem, I think this is a very useful feature. Let me create a pull request to add it. Thanks!

@weiiwang01 Could we also add the keep-alive annotation to this request? Any idea when it could be merged?

Adding my +1 to this enhancement request, it would be really useful for my team as well.

@weiiwang01 Could we also add the keep-alive annotation to this request? Any idea when it could be merged?

Yes, let me see if I can find anyone to review the pull request.
For the [keep-alive](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#keep-alive) attribute, I believe it's a configmap rather than an annotation. This means it can only be changed by someone with access to the ingress Kubernetes namespace.

Revision 130 (amd64) and revision 131 (arm64) released with the proxy-send-timeout and proxy-connect-timeout configuration.

authors: gaborbk kelkawi-a weiiwang01


text:
Create bot_pr_approval.yaml

Applicable spec: N/A
Overview
Enables the auto-approval of bot PRs. @gtrkiller could you please get this PR merged?
Checklist

[x] The charm style guide was applied
[x] The contributing guide was applied
[x] The changes are compliant with ISD054 - Managing Charm Complexity
[x] The documentation is generated using src-docs
[x] The documentation for charmhub is updated.
[x] The PR is tagged with appropriate label (urgent, trivial, complex)

@jdkandersson I'm not the owner of the charm, I'll ask around if anyone can merge the PR, thanks!

authors: gtrkiller jdkandersson


text:
[MISC] Ignoring secret remove hook

We don't really do any secrets related cleanup and handling this hook seems to cause a loop when using/removing TLS.

Superseded by https://github.com/canonical/postgresql-k8s-operator/pull/484


text:
test-branch/execute-job/quoted-authorization/5646e0b1-ead8-4e1c-b0dd-3ad3722dc0c2

PR for testing 35812dca43691729224f692127c63e242ff1efa8

/canonical/self-hosted-runners/run-workflows 35812dca43691729224f692127c63e242ff1efa8

repo: canonical/repo-policy-compliance-tests


text:
test-branch/execute-job/fork-branch/9f9d1c7e-60d3-49fd-ba9d-07daa66017f2

PR for testing 07bd74ca908a769811d0bf2b2cf0ed934c2bfab3

padding /canonical/self-hosted-runners/run-workflows 07bd74ca908a769811d0bf2b2cf0ed934c2bfab3 padding

repo: canonical/repo-policy-compliance


text:
🛑 mir-server.io is down

In 912d76d, mir-server.io (https://mir-server.io) was down:

HTTP code: 503
Response time: 521 ms

Resolved: mir-server.io is back up in 52ce1a0.

repo: canonical/upptime


text:
Error when creating a new session

Error when creating a new session, after adding a new whatsapp it shows loading, but the QR code button does not appear. This has happened since the server was restarted.
Anyone else had the same problem?

Verify folder /whaticket/backend/.wwebjs_auth

I am having the same issue, after the server restart I am no longer able to connect.

I am having the same issue, after the server restart I am no longer able to connect.

Updated the package to the latest version "whatsapp-web.js": "^1.19.2"
Changed in package.json to version 1.19.2.
Ran command npm install
Ran command npm run build
Restarted pm2
Done, it started working again.

repo: canove/whaticket-community


text:
🛑 GCG.Website (Test) is down

In dc74631, GCG.Website (Test) (https://test.cantorgymnasium.de/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: GCG.Website (Test) is back up in b155bc2 after 13 minutes.

repo: cantorgymnasium/status


text:
JavetProxyConverter: "new" on proxied static classes

Hello! So let's take a class like for example, java.lang.Thread (just as an example)
const Thread = Class.forName('java.lang.Thread');

If I want to initialize an instance of this class via JS, I should be able to do something like new Thread(() => console.log('Hi!')), but you can't because this isn't supported.
The desired output would be a proxied instance of Thread that we can interact with. The example of passing in a JS function as an argument is based on the expected behaviour that these functions will be converted to whatever the functional interface needed is
Thanks!

a way of initializing classes built into V8 would be nice.

I think new Object() is fine. However, creating an instance of an interface places a new level of technical challenge. I'll investigate that.
Interesting and intuitive feature. 👍

I think new Object() is fine. However, creating an instance of an interface places a new level of technical challenge. I'll investigate that.
Interesting and intuitive feature. 👍

It is actually very possible using Java proxies, which I suggest you read about for covering this problem.

It is actually very possible using Java proxies, which I suggest you read about for covering this problem.

It's beyond that. Java proxy is a subtle issue here. It may leak memory in one thread, may core dump among threads.

Creating an instance by new ClassName(...) has been commit to dev branch via 5eed567, b9ec19b, 5dbcfa0.

It is actually very possible using Java proxies, which I suggest you read about for covering this problem.

It's beyond that. Java proxy is a subtle issue here. It may leak memory in one thread, may core dump among threads.

Oh, that's information I was not aware of.

Implementing interface in JS is enabled by this commit.

authors: Cormanz MrEnxo caoccao

repo: caoccao/Javet