[CLJS-22] closures act like js not clojure Created: 19/Jul/20 Updated: 22/Jul/11 Resolved: 22/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Blocker |
| Reporter: | Anonymous | Assignee: | Rich Hickey |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
(loop [i 0 j ()] In Clojure, this returns: `(4 3 2 1 0)` In ClojureScript it returns: `(5 5 5 5 5)` Imported from github issue #85 |
| Comments |
| Comment by Chouser [ 19/Jul/20 12:00 AM ] |
|
Comment by richhickey, Tue Jul 19 14:41:05 2011: in loops |
| Comment by Chouser [ 19/Jul/20 12:00 AM ] |
|
Comment by Chouser, Tue Jul 19 18:50:18 2011: Claggett and I wrote a patch, producing this for the snippet above: (function (){ |
[CLJS-23] Inconsistent munging of namespaces with dashes Created: 19/Jul/20 Updated: 28/Jul/11 Resolved: 28/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Brenton Ashworth |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Approval: | Screened |
| Description |
|
When creating a file with a namespace like `foo.bar-baz` the compiled file will have a dash in the `goog.provide` but then use underscores within the code. goog.provide('foo.bar-baz'); When requiring this namespace in another file the `goog.require` and the code both use dashes. goog.require('foo.bar-baz'); Assuming that file names must use underscores instead of dashes, as in Clojure on the JVM, there is a related issue in the `cljs.closure` namespace where it incorrectly creates file names from namespaces with dashes. The first line in the let form of the `get-compiled-cljs` function is the problem and can be replaced with a call to something like: ```clj Imported from github issue #86 |
| Comments |
| Comment by Brenton Ashworth [ 25/Jul/11 7:28 AM ] |
|
I think this is fixed. Munge emitted var names and emitted names in goog.provide and goog.require. https://github.com/clojure/clojurescript/commit/389b7289391413104574a5f4c4d94d01098abf8d Create the correct file name for namespaces with dashes. Munge the namespace names which are output to a dependency file. Fix the get-compiled-cljs function so that it will only compile files on the classpath. The purpose of get-compiled-cljs is to compile ClojureScript dependencies. All ClojureScript dependencies should be on the classpath. Compiled files are stored in the output directory. If a file exists in the output directory then it will not be compiled but will instead be read from that location. Before this fix, compiled files from the user's project were being read from the output directory by this function. When dashes were used in the namespace this caused duplicates to appear in the final list of files which is sent to the Closure compiler. In the new version, get-compiled-cljs will only be passed files which are on the classpath. https://github.com/clojure/clojurescript/commit/184e6d838326be9895434a3517b34742cffba0c4 |
[CLJS-21] implement memoize Created: 18/Jul/20 Updated: 25/Jul/11 Resolved: 25/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Frank Failla |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Imported from github issue #84 |
| Comments |
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by ffailla, Mon Jul 18 14:32:00 2011: also implemented rand so that i can test memoize. changes are on the 84-memoize branch |
[CLJS-20] Implement rem, mod, quot Created: 18/Jul/20 Updated: 28/Jul/11 Resolved: 28/Jul/11 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Devin Walters |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
rem, mod, and quot might be useful for the demo app. Imported from github issue #83 |
| Comments |
| Comment by Devin Walters [ 28/Jul/11 12:52 PM ] |
|
rem, mod, and quot are all present in core.cljs and have adequate tests around them. |
[CLJS-17] move to public clojure org repo Created: 15/Jul/20 Updated: 22/Jul/11 Resolved: 22/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | ||
| Reporter: | Anonymous | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Clone current repo. Needs to be live with talk Wed night Will wiki and other things move automatically? Imported from github issue #70 |
| Comments |
| Comment by Chouser [ 15/Jul/20 12:00 AM ] |
|
release-night |
[CLJS-19] Record Wednesdays talk Created: 15/Jul/20 Updated: 22/Jul/11 Resolved: 22/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | ||
| Reporter: | Anonymous | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Bring in Zi8, charger, tripod(s), and extra storage Imported from github issue #74 |
| Comments |
| Comment by Chouser [ 15/Jul/20 12:00 AM ] |
|
release-night |
[CLJS-18] Live Stream Talk Created: 15/Jul/20 Updated: 22/Jul/11 Resolved: 22/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | ||
| Reporter: | Anonymous | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
Imported from github issue #73 |
| Comments |
| Comment by Chouser [ 15/Jul/20 12:00 AM ] |
|
Comment by alandipert, Fri Jul 15 06:44:16 2011: This is where the live stream will be: http://www.ustream.tv/channel/clojurenyc |
| Comment by Chouser [ 15/Jul/20 12:00 AM ] |
|
release-night |
[CLJS-15] compare, comparator, sort, sort-by Created: 14/Jul/20 Updated: 29/Jul/11 Resolved: 29/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Stuart Halloway | Assignee: | Stuart Halloway |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Approval: | Ok |
| Description |
|
Imported from github issue #68 |
| Comments |
| Comment by Chouser [ 15/Jul/20 12:00 AM ] |
|
Comment by stuarthalloway, Thu Jul 14 10:20:05 2011: Review requested. Please see https://github.com/relevance/clojurescript/wiki/Comparators for explanation of the approach I took. |
[CLJS-16] amap, areduce, aclone, into-array, make-array, object-array, to-array-2d Created: 14/Jul/20 Updated: 21/Apr/12 Resolved: 21/Apr/12 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Fogus |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Implement the valid array functions. Imported from github issue #69 |
| Comments |
| Comment by David Nolen [ 04/Apr/12 9:54 PM ] |
|
Quite a few of these are done. Is there a reason we want to implement object-array or make-array? |
| Comment by David Nolen [ 21/Apr/12 11:31 AM ] |
|
fixed, https://github.com/clojure/clojurescript/commit/0b7d04bad801f49db9a7c3bf3004184c07fe6843 |
[CLJS-14] (quot) Created: 13/Jul/20 Updated: 22/Jul/11 Resolved: 22/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Unassigned |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Implement (quot) Imported from github issue #67 |
| Comments |
| Comment by Devin Walters [ 22/Jul/11 8:27 AM ] |
[CLJS-12] Implement delays Created: 12/Jul/20 Updated: 28/Jul/11 Resolved: 28/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Frank Failla |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The implementation of Delay objects, the `delay` macro, and the `delay?` predicate (probably a good excuse to implement `realized?` also, but probably as part of a different ticket) should be fairly straight-forward to implement. Imported from github issue #65 |
| Comments |
| Comment by Chouser [ 16/Jul/20 12:00 AM ] |
|
Comment by ffailla, Fri Jul 15 06:16:20 2011: i'll take a stab at this. |
| Comment by Chouser [ 16/Jul/20 12:00 AM ] |
|
Comment by ffailla, Fri Jul 15 06:31:45 2011: I have an implementation of this in the 65-delay branch. Can someone please review before I merge into master. |
| Comment by Chouser [ 16/Jul/20 12:00 AM ] |
|
Comment by ffailla, Fri Jul 15 19:57:34 2011: Implemented realized? via an IRealized protocol as well. Also in this branch |
| Comment by Chouser [ 16/Jul/20 12:00 AM ] |
|
Comment by ffailla, Sat Jul 16 07:33:01 2011: merged into master |
[CLJS-13] Implement ratios Created: 12/Jul/20 Updated: 03/Sep/12 |
|
| Status: | Open |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Stuart Halloway | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Clojure.java contains support for Ratio types. It would be nice to have them in Clojurescript as well, but as far as I can tell this would be new development (please comment if I'm wrong). That is, there is no implementation of Ratio types in GClosure so this feature would need to be implemented from the ground up. In additional to the Ratio type, the following corresponding functions would also need implementations:
Plus the ratio type would need to be rolled into the existing mathematical frameworkings. Imported from github issue #66 |
| Comments |
| Comment by David Nolen [ 10/Oct/11 10:12 PM ] |
|
What approach do you envision here given that we can't reliably detect integers in JavaScript? |
| Comment by Brandon Bloom [ 03/Sep/12 3:30 PM ] |
|
See |
[CLJS-10] Supported Closure Compiler options Created: 08/Jul/20 Updated: 16/Sep/11 Resolved: 16/Sep/11 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Brenton Ashworth |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
Currently the interface to the Closure compiler in cljs.closure supports only two compiler options:
From the repl it looks like this: (-compile '(defn add-one [x] (inc x)) {:optimizations :advanced :flags #{:pretty-print}}) Do we want to support all options are just a subset? Whatever we decide to support, said support will need to be added to cljs.closure. See: https://github.com/relevance/clojurescript/blob/master/src/clj/cljs/closure.clj#L110
Currently all default externs are loaded. If we decide to go with a subset of options we may want to follow the lead of CommandLineRunner and allow an option to provide custom externs and one to only use the custom externs. Imported from github issue #62 |
| Comments |
| Comment by Rich Hickey [ 22/Jul/11 7:03 AM ] |
|
May be needed for #cljs-25 |
| Comment by Alen Ribic [ 24/Aug/11 5:17 AM ] |
|
I've attached two patch versions for Externs support, one that includes support for directory paths `0001-CLJS10.patch` and another, simpler, version `0002-CLJS10.patch` that has support for only js source file paths. Version 0001 could maybe do with some cleanup if necessary in the letfn form section. Noteworthy:
|
| Comment by Brenton Ashworth [ 14/Sep/11 3:41 PM ] |
|
I have applied this patch to the externs branch. If I hear no objections, I will merge this change into master later this week or early next week. Thanks for the patch. |
| Comment by John Li [ 14/Sep/11 5:17 PM ] |
|
I just tested with the original repo, and it works for me. Whoo! |
| Comment by Brenton Ashworth [ 16/Sep/11 8:31 AM ] |
|
Support for externs has been added. There are many other options we can support. I will close this issue and we can add new issues when we believe an additional option should be added. |
[CLJS-11] Command line build tool Created: 08/Jul/20 Updated: 29/Nov/11 Resolved: 16/Sep/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Stuart Halloway | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
First, do we want one? Now that we can build from the repl with cljs.closure/build, do we want to provide a command line tool? Build time will be much faster from the repl as there is no JVM startup time and only a one time loading of resources (which is significant). If we do want one then will it be a bash script or a main class that we package in a jar? In either case we will have to make something to convert command line args into a Clojure map of options. Imported from github issue #63 |
| Comments |
| Comment by Brenton Ashworth [ 16/Sep/11 8:43 AM ] |
|
We have a command-line build tool. Create specific issues for improvements to this tool. |
| Comment by Benjamin Conlan [ 29/Nov/11 6:30 AM ] |
|
nailgun solves the jvm loading issue. I have successfully used it in an ad hoc way to compile my project on change (while mingling rake and livereload) into the mix. Here is the gist of it: https://gist.github.com/1399995 It is by no means a perfect solution but might help in identifying some ways to solve problems or do things better (ie a way to have closure's require tree updated incrementally). |
| Comment by Chouser [ 09/Jul/20 12:00 AM ] |
|
Comment by bobby, Fri Jul 8 11:54:30 2011: Could this be a good use-case for cljs as a scripting language? I have not thought it through more than asking the question, but it seems worth asking. |
| Comment by Chouser [ 09/Jul/20 12:00 AM ] |
|
Comment by brentonashworth, Fri Jul 8 13:16:52 2011: Issue #52 has to do with shebang style scripting which is a little more involved and could make use of a command-line build tool. But yes, this could be used to do "scripting" in the same way you would in C or Haskell. i.e. compile source to a fast running executable. It may be worth considering adding an output option to cljs.closure/build that produces JavaScript which is runnable from the command-line. |
| Comment by Chouser [ 09/Jul/20 12:00 AM ] |
|
Comment by bobby, Fri Jul 8 20:18:08 2011: I was thinking more that the build script itself would be implemented in cljs as the scripting language, rather than bash/make/java -jar/whathaveyou. Thoughts? Possible? |
| Comment by Chouser [ 09/Jul/20 12:00 AM ] |
|
Comment by Chouser, Sat Jul 9 19:55:53 2011: Are you talking about writing the compiler in ClojureScript instead of Clojure so that it can be started up more quickly? Rich said that's a non-goal, at least for now. |
| Comment by Chouser [ 09/Jul/20 12:00 AM ] |
|
Comment by bobby, Sat Jul 9 20:10:56 2011: No, the compiler would stay in Clojure. I was thinking more in the way of a small build DSL written in ClojureScript that would lash all of the build steps together for cljs projects, a la Leiningen. One of the tasks/targets would be compile, and the cljs script would call out to the compiler to do its thing, but then other tasks would be to combine the various compiled scripts into a single JavaScript, running the optimizer on it, gzipping, etc. I was mostly suggesting that instead of using bash, we use ClojureScript to do the things bash would have done, leaving the rest of the infrastructure in place. Again, I don't know if this is possible yet, as I've just jumped in the past week or so, but doing so might help support our case that ClojureScript can be a viable command-line scripting tool. |
[CLJS-8] clojure.string Created: 01/Jul/20 Updated: 06/Aug/11 Resolved: 06/Aug/11 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Stuart Halloway | Assignee: | Brenton Ashworth |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
Port clojure.string to cljs Imported from github issue #47 |
| Comments |
| Comment by Brenton Ashworth [ 01/Aug/11 12:04 PM ] |
|
All functions have implementations. Added string tests from JVM Clojure plus some new tests. All tests pass in advanced mode. Clojure.string needs a code review. Also, nil handling is not being tested and may not work the same way as JVM Clojure. This still needs to be investigated. |
| Comment by Jürgen Hötzel [ 03/Aug/11 10:38 AM ] |
|
replace can leverage native JavaScript instead of doing a Reimplementation in Clojure (Patch enclosed). I just did some profiling using Google Chrome (reversing 50000 long strings): |
| Comment by Brenton Ashworth [ 06/Aug/11 9:40 AM ] |
|
Jürgen, Thank you for looking into this and for the patch. However, we can't apply this patch because you have not signed a CA. Please see: http://clojure.org/contributing I know it's a lot of work for one small patch but if you send in a CA then hopefully you will be able to send in more patches like this in the future. I am going to close this issue because it was mainly about implementing clojure.string. If you could please open a new issue about the performance of (reverse), that would be awesome. |
| Comment by Chouser [ 07/Jul/20 12:00 AM ] |
|
Comment by bobby, Thu Jul 7 20:29:32 2011: To continue development on cljs.string, this issue requires support for both regular expressions (#54) and refer-clojure (#64) in the ns declaration. |
[CLJS-7] document diffs from Clojure Created: 01/Jul/20 Updated: 29/Jul/11 Resolved: 29/Jul/11 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Fogus |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Approval: | Ok |
| Description |
|
section by section comparison with Clojure, documenting what is different or absent Imported from github issue #40 |
| Comments |
| Comment by Chouser [ 17/Jul/20 12:00 AM ] |
|
Comment by stuarthalloway, Sun Jul 17 19:55:03 2011: https://github.com/relevance/clojurescript/wiki/Differences-from-Clojure]] |
| Comment by Chouser [ 17/Jul/20 12:00 AM ] |
|
docs |
[CLJS-9] Create Sample Application Created: 01/Jul/20 Updated: 07/Apr/12 Resolved: 07/Apr/12 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Critical |
| Reporter: | Rich Hickey | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Remaining items:
Since I (Brenton) won't be able to do any of these things, I am relinquishing this task to someone who can. |
| Comments |
| Comment by Brenton Ashworth [ 22/Jul/11 9:58 PM ] |
|
links to ClojureScript clean up the code (people will follow this example so it should be good) |
| Comment by Brenton Ashworth [ 28/Jul/11 8:27 AM ] |
|
Some progress has been made. We now load missing images in subsequent queries and the status box shows activity. Remaining items:
Complete:
|
| Comment by Hubert Iwaniuk [ 29/Jul/11 4:38 AM ] |
|
Access to HTML5 LocalStorage via goog is dependent on |
| Comment by Brenton Ashworth [ 30/Jul/11 3:43 PM ] |
|
The code has been cleaned up and links have been added to ClojureScript, documentation and Source code. Remaining items:
Since I (Brenton) won't be able to do any of these things, I am relinquishing this task to someone who can. |
| Comment by John Li [ 14/Sep/11 1:55 AM ] |
|
This could be hosted on Github with Github Pages: http://pages.github.com/ |
| Comment by Brenton Ashworth [ 07/Apr/12 8:31 PM ] |
|
This has been done. Twitterbuzz was the sample application. If there are issues with Twitterbuzz that someone would like to address then those should be separate issues. |
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by richhickey, Fri Jul 1 08:28:01 2011: Must not have any other deps (other than goog) |
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by fogus, Fri Jul 1 08:34:57 2011: Here is an example of a simple TODO: http://nowdothis.com/ |
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by bobby, Fri Jul 1 11:45:05 2011: Here are two other sample Todo apps for popular JavaScript libraries:
|
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by jessmartin, Fri Jul 15 08:46:12 2011: Here's a wiki page describing a proposed Sample App: https://github.com/relevance/clojurescript/wiki/Demo-Application |
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by richhickey, Mon Jul 18 09:50:55 2011: I'm working on a simulated annealing based layout |
| Comment by Chouser [ 18/Jul/20 12:00 AM ] |
|
Comment by Chouser, Mon Jul 18 21:13:43 2011: Still to be done for the graph:
|
[CLJS-6] range Created: 29/Jun/20 Updated: 29/Jul/11 Resolved: 29/Jul/11 |
|
| Status: | Closed |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Alexander Redington |
| Resolution: | Completed | Votes: | 1 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
You know, the function. Imported from github issue #39 |
| Comments |
| Comment by Arthur Ulfeldt [ 27/Jul/11 3:51 AM ] |
|
implements the range function in core.cljs |
| Comment by Alexander Redington [ 29/Jul/11 9:42 AM ] |
|
I added some tests to test-stuff, thank you for the patch Arthur! |
[CLJS-5] Compiler should emit optional source maps Created: 24/Jun/20 Updated: 22/Dec/12 |
|
| Status: | In Progress |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Major |
| Reporter: | Anonymous | Assignee: | David Nolen |
| Resolution: | Unresolved | Votes: | 4 |
| Labels: | None | ||
| Description |
|
== New Notes == http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/ Source map support will be landing in Chrome in 6 weeks. == Old Notes == Google's debugging tooling consists of at least these two big pieces:
Open Questions
Imported from github issue #31 |
| Comments |
| Comment by David Nolen [ 06/Apr/12 3:03 PM ] |
|
There's a patch for Clojure, here Related, https://github.com/brandonbloom/clojurescript/compare/clojure:master...brandonbloom:track-pos |
| Comment by David Nolen [ 01/Jun/12 8:49 AM ] |
|
wip here http://github.com/clojure/clojurescript/tree/source-map |
| Comment by David Nolen [ 03/Jun/12 11:03 AM ] |
|
Related ticket (tracking line & col during emission) that was resolved - http://dev.clojure.org/jira/browse/CLJS-176 |
| Comment by Chouser [ 24/Jun/20 12:00 AM ] |
|
Later |
[CLJS-4] Try compiler macros for math ops Created: 17/Jun/20 Updated: 23/Sep/11 Resolved: 23/Sep/11 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Alan Dipert |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
I've made it so macro expansion stops when expansion does not differ from source form. This combined with the fact that we have separate Clojure namespaces for macros means that ordinary macros can act as compiler macros in cljs. Just define a macro with the same name as the function. Note that you will need the complete definition of the function as well - it will be used when the function is used as a value, or via some alias. The macro will only come into play when compiler sees call by original name. Try this on e.g. * and report back. Imported from github issue #15 |
| Comments |
| Comment by David Nolen [ 23/Sep/11 9:15 AM ] |
|
I've started on this, https://github.com/clojure/clojurescript/tree/4-math-op-macros. Seems to works as advertised, however for some reason function printing gets borked. |
| Comment by David Nolen [ 23/Sep/11 11:58 AM ] |
|
Fixed, https://github.com/clojure/clojurescript/commit/8e5662d9311c580f76a64b49c0b3422c598ee2c2 |
| Comment by Chouser [ 24/Jun/20 12:00 AM ] |
|
Later |
[CLJS-3] testing spike (assert, test.generative) Created: 16/Jun/20 Updated: 23/Aug/11 |
|
| Status: | Open |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Anonymous | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Things we will need to have/work around:
Imported from github issue #12 |
| Comments |
| Comment by Chouser [ 24/Jun/20 12:00 AM ] |
|
Comment by stuarthalloway, Thu Jun 16 00:37:49 2011: Can I import the goog libraries when and as necessary to implement core fns? I assume I will need some math support for test.generative. |
| Comment by Chouser [ 24/Jun/20 12:00 AM ] |
|
Comment by richhickey, Thu Jun 16 04:45:01 2011: Yes, you should be able to require them, depends on #8 |
| Comment by Chouser [ 24/Jun/20 12:00 AM ] |
|
Later |
[CLJS-2] Implement apply Created: 15/Jun/20 Updated: 29/Jul/11 Resolved: 29/Jul/11 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Blocker |
| Reporter: | Anonymous | Assignee: | Fogus |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Approval: | Test |
| Description |
|
The time for `apply` is nigh. Is it as simple as emitting `afn.apply(ctx, args...)`? Imported from github issue #11 |
| Comments |
| Comment by Fogus [ 29/Jul/11 8:37 AM ] |
|
Merged into master. Work performed by mf and ss |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by richhickey, Wed Jun 15 05:35:44 2011: Nope. Issues are: laziness - apply is lazy when called with a lazy seq and a fn which consumes the & argument lazily One approach: The recipe then is: |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by richhickey, Fri Jun 24 05:25:53 2011: maxFixedArity as implemented ends up being a code-removal blocker for gclosure compiler. I'm not sure if there is another impl approach that will work, or if we need another strategy. Also, let's please avoid dynamic defns in our code. |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by stuartsierra, Fri Jul 1 14:24:47 2011: Laziness defeats me. The trick is making sure that every fn has an `applyTo` property, even if it only has one arity. |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by stuartsierra, Mon Jul 4 12:35:00 2011: There are 4 cases to deal with: 1. Single-arity function, non-variadic. These can stay as they are.
Case 3 is complicated by the fact that single-arity functions are currently emitted in such a way that additional properties cannot be set on the Function object. |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by fogus, Sat Jul 16 07:42:59 2011: This may not make the 7/20 demo. There is a lot conspiring against a solid (and minifiable) implementation. Apply works as always, it's a little smarter about gen'ing the right code in the correct contexts, but it's still not lazy. I believe the problem lies elsewhere, but have not tracked the issue yet. I have a branch at 11-apply-mf if anyone is interested in exploring. |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by stuartsierra, Sat Jul 16 20:22:06 2011: For one thing, I think the definition of `apply` should say `(<= (bounded-count args (inc fixed-arity)) fixed-arity)` instead of `(<= (bounded-count args fixed-arity) fixed-arity)`. As written now, the condition is always true. Changing this on master breaks `apply` in some cases because `cljs$lang$applyTo` is not correctly defined. |
| Comment by Chouser [ 20/Jul/20 12:00 AM ] |
|
Comment by fogus, Sun Jul 17 07:15:53 2011: Right. You'll notice I fixed the trivial case of apply to do (effectively) that in my branch, but ran out of time to find the source of full realization that it hitting us later on. |
[CLJS-509] Spurious warning about symbol not being a protocol Created: 21/May/13 Updated: 21/May/13 |
|
| Status: | Open |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Praki Prakash | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Clojure 1.5.1, ClojureScript, cljsbuild 0.3.2 |
||
| Attachments: |
|
| Description |
|
"lein cljsbuild" generates "Symbol X is not a protocol" warning. The following code snippet reproduces the issue. Renaming "my.foo" namespace to "foo" compiles with no warning. ;; file:: foo.cljs (defprotocol IFoo ;; file: fubar.cljs (deftype FuBar [] cljs output: |
[CLJS-508] Missing IReduce implementations and typo in clojure.core.reducers/append! Created: 21/May/13 Updated: 21/May/13 Resolved: 21/May/13 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Minor |
| Reporter: | Daniel Skarda | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Fresh CLJS checkout from github |
||
| Attachments: |
|
| Patch: | Code and Test |
| Description |
|
1) IReduce protocol is missing implementation for array and List. Patch attached. Note: what is your experience with array.push performance? ClojureScript reducers/foldcat uses arrays for append! / cat implementation. My experience was that (into [] ...) using conj! and TransientVector was at least 5 times faster than reducers/foldcat using array and push. The reason is probably inefficient push implementation in Chrome/V8 |
| Comments |
| Comment by David Nolen [ 21/May/13 9:59 AM ] |
|
Thanks for the patch. I doubt that array push is inefficient, but I imagine the regularity of TransientVector operations is something that V8 likes. |
| Comment by David Nolen [ 21/May/13 10:03 AM ] |
|
fixed, http://github.com/clojure/clojurescript/commit/30bb0b9e55fb77cdfe952fbf5df763a25c4a25c5 |
[CLJS-507] Persistent Data Structure Benchmark Created: 20/May/13 Updated: 20/May/13 |
|
| Status: | Open |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | David Nolen | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Put together an easy to run series of persistent data structure benchmarks that can be easily run. For example we would like to submit to this Mozilla ticket http://bugzilla.mozilla.org/show_bug.cgi?id=874174 |
[CLJS-506] Flag to disable minification in advanced mode Created: 19/May/13 Updated: 19/May/13 |
|
| Status: | Open |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Major |
| Reporter: | Herwig Hochleitner | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
Problem: Proposal:
Attached patch implements this, as a result the compiled test suite is indeed quite readable. |
| Comments |
| Comment by Herwig Hochleitner [ 19/May/13 10:11 AM ] |
|
Patch 0001 depends on patches 0001 and 0002 from CLJS-480 because of changes to the test script. |