This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl
, '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
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Add Core Erlang support. - #384

Open
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation
Open

Add Core Erlang support.#384
cmeiklejohn wants to merge 3 commits into
basho:masterfrom
cmeiklejohn:feature/csm/support-core-compilation

Conversation

@cmeiklejohn

Copy link
Copy Markdown

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.

Support the compilation of .core files in the directory for applications
which use source code authored directly in Core Erlang.
In the case of a beam called Coq.Arith.EqNat, which will be called
directly in the Core Erlang like call 'Coq.Arith.EqNat':'beq_nat', don't
put into a subdirectory or the emulator will not be able to find it.
@jaredmorrow

Copy link
Copy Markdown
Contributor

@cmeiklejohn what do you think about attempting to make a unit test for this?

@cmeiklejohn

Copy link
Copy Markdown
Author

I pushed a test that writes out a Erlang eunit test and verifies that the Core Erlang has been compiled correctly. However, when running eunit directly it appears to be looking for a test module for the Core file, which isn't produced. It appears that this is a problem in eunit, but I'm not 100% sure. Any thoughts, @psyeugenic?

@cmeiklejohn

Copy link
Copy Markdown
Author

@richcarl Any thoughts here?

@richcarl

Copy link
Copy Markdown

If you tell eunit to test a module x, it will also look for a module x_tests, but if it doesn't find one it should not be a problem as it should simply run only the test functions found in x itself. What's happening in your case?

@cmeiklejohn

Copy link
Copy Markdown
Author

it's looking for a test module generated from the compilation of the core erlang module -- which it doesn't find and I gives me the following output:

myapp_mymod_tests: myfunc_core_test...[0.001 s] ok
[done in 0.007 s]
[done in 0.010 s]
undefined *** test module not found ***
**myapp_mycoremod
=======================================================
Failed: 0. Skipped: 0. Passed: 3.
One or more tests were cancelled.
ERROR: One or more eunit tests failed.

@richcarl

Copy link
Copy Markdown

I haven't had time to check out the code and try it, but it seems pretty strange. Somehow eunit gets passed the atom 'myapp_mycoremod' as a test to be executed, perhaps from a generator function. But I can't see anything in your commit that would cause that to happen.

@richcarl

Copy link
Copy Markdown

Tried to see what's going on, but I think it's rebar scanning for files on its own, and somehow ends up finding this module although it for some reason can't be found in the code path when it tries to run it. Perhaps a race condition where the teardown has already removed the .beam file when it comes to the point where it tries to run the tests for the module that it found.

wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Properly detecting change meant moving from rebar_base_compiler, so it
also meant processing protocol buffer files in sequence instead of in
parallel.
wcy123 pushed a commit to wcy123/rebar that referenced this pull request Mar 3, 2016
For protocol buffer files, when there were gpb options to alter the
module name with prefix or suffix, recompilation was not properly
detected. This is now fixed. (Issue basho#384).
Use the rebar_base_compiler's ability to specify both source and
target file names, to be able to also support prefixes.
This also introduces a call to gpb_compile:format_error, so the xref
recipe needs to be updated to ignore it, to avoid false errors.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cmeiklejohn@jaredmorrow@richcarl