Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Bug fix/fix error handling - #1925

Closed
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling
Closed

Bug fix/fix error handling#1925
dothebart wants to merge 7 commits into
nodejs:masterfrom
dothebart:bug-fix/fix-error-handling

Conversation

@dothebart

@dothebartdothebart commented Oct 16, 2019

Copy link
Copy Markdown
Contributor

these 3 changes seem to be related to the python 3 migration, the parameter types aren't compatible.

sys.stderr.write(p_stderr) will throw with: TypeError: write() argument must be str, not bytes ; the followup comment references python 2.5, raising the error gives the correct behaviour.

I ran into this error by a gyp line spawning a process exiting errnously.

The None as a parameter to eval __builtins__ leads to the exception Exception: 'NoneType' object is not subscriptable.

… write() argument must be str, not bytes`.
It seems to me that its unneccesary, and it should simply throw the exception instead.
…hrow: `Exception: 'NoneType' object is not subscriptable`.
@dothebart

dothebart commented Oct 16, 2019

Copy link
Copy Markdown
ContributorAuthor
 cmddigest = hashlib.sha1(command if command else self.target).hexdigest()
TypeError: Unicode-objects must be encoded before hashing

fixed by the 3rd commit.

Comment threadgyp/pylib/gyp/generator/make.py Outdated
@cclauss

Copy link
Copy Markdown
Contributor

I am +1 if we are sure these changes are compatible with both Py2 and Py3.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

doesn't error out with python 2 on debian testing.

@rvagg

Copy link
Copy Markdown
Member

@dothebart what's the situation that's causing this error to be experienced? how could we go about reproducing it?

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

@rvagg I was putting in the complete directory as V8_ROOT from the outside in, and it seems as if gyp can only handle relative paths for source files - at least with the makefile generator. I reverted to relative paths, and this is working now.

But if its not supported to have absolute paths on filenames, gyp should rather error out; If I get it correctly it needs them relative to the location of the gyp-file - so 'stat' ing files, and ruling out absolute paths could keep people from running into misery.

[edit - wrong issue, will create an issue for this one]

@dothebart

dothebart commented Oct 18, 2019

Copy link
Copy Markdown
ContributorAuthor

one of these issues was caused by a sub process erroring out - here due to non-python3-ness:

'<!<(PYTHON_EXECUTABLE) -c "import sys; print sys.byteorder ")',

so probably invoking /bin/false could reproduce it?

the other one was caused by this section in features.gypi for me:

 [ 'component and "library" in component',
{
'is_component_build': 1,
}, {
'is_component_build': 0,
}],

in this context:
https://github.com/arangodb/arangodb/blob/feature/upgrade-v8/3rdParty/V8/v7.1.302.28/gypfiles/features.gypi

@rvagg

Copy link
Copy Markdown
Member

sounds reasonable, @cclauss over to you I think

@@ -911,9 +911,7 @@ def ExpandVariables(input, phase, variables, build_file):
p_stdout, p_stderr = p.communicate('')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, my preference would be the solution we use elsewhere:

if bytes != str: # Python 3
p_stdout = p_stdout.decode('utf-8')
p_stderr = p_stderr.decode('utf-8')

And then revert the change to line 914.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg

Copy link
Copy Markdown
Member

@cclauss if you think this is important enough please take over the PR, submit a new one or whatever needs to be done so we can progress and get 6.0.1 out. If it's not that important then we'll just hold off on it.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

Sorry bit under stress @cclauss sent you an invite to my fork so you can make yourselves home ;)

@cclausscclauss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made two reverts to this PR and now I fully support the remaining modifications. Thanks @dothebart for your patience and persistence.

@dothebart

Copy link
Copy Markdown
ContributorAuthor

thanks for finishing where I left it ;)

@cclauss

Copy link
Copy Markdown
Contributor

@rvagg Can you please rerun the one Travis CI job that timed out?

@richardlau

Copy link
Copy Markdown
Member

@rvagg Can you please rerun the one Travis CI job that timed out?

I've restarted it.

rvagg pushed a commit that referenced this pull request Oct 31, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg

Copy link
Copy Markdown
Member

landed in 1b11be6. I hope the commit msg is reasonable: gyp: python3 fixes: utf8 decode, use of 'None' in eval

@rvaggrvagg closed this Oct 31, 2019
@dothebart

Copy link
Copy Markdown
ContributorAuthor

thank you!

rvagg pushed a commit that referenced this pull request Nov 18, 2019
PR-URL: #1925
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@dothebart@cclauss@rvagg@richardlau