Fork me on GitHub
Roman Liutikov08:04:59

@dnolen is this ticket still valid? I’d like to give it a try


Pretty sure it is. Will need a bunch of tests. For tests I had in mind to finally add some kind of utility function that will generated a seq of all kinds of different collections. This would allow much better test coverage and could be used in many other tests. So that utility fn should generate seqs of all coll types in core. (IndexdSeq, PAM, PHM, PTM, chunked seqs, lazy seqs etc etc...)

Roman Liutikov09:04:50

Sounds good. I see there are a bunch of perf related tickets from you that seem to be not hard to fix, at least from the first look. Do you know any reason it is not done yet? I’d like to dedicate some time, if it makes sense of course.


I only provide patches these days when they're requested and I know that they'd be accepted. I could certainly provide patches for most/all of my tickets. But of course, I'm also fine if others pick up the ticket.

Roman Liutikov09:04:25

Got it. I guess I have to ask David about each of them.


Also: If people want to see more perf improvements: Do vote on these tickets.

👍 4

@dnolen Can you explain why it’s necessary to put compiled sources on the inputs, not on disk, for a global preprocess function work?


Looking at the process-js-modules in closure.clj, it looks like the existing pipeline that we have for loading, preprocessing and compiling JS modules could already work; could just add a global preprocess function into the mix, like :preprocess, just set as a single top-level option.


Unless process-js-modules isn’t applied to all JS modules that we’d want to go through this new function.


@jannis it’s not necessary but I just want to do it first, there’s a bunch of benefits here for testing


Ah, ok 🙂


restricting to this to just js modules also doesn’t really make much sense


That’s a good point too


@jannis also if you’re finding this a bit of challenge to do you can always just assign it to me, it’s definitely high on my list of todos


there’s a bunch of things around testing, input processing, and JS modules that I want to sort out now


It shouldn't be that hard... once I understand where all the files are loaded, where they are compiled and where they are written. The writing could be replaced by keeping them in memory, there could be an extra preprocessing step in build and the writing could happen just after that.


By if there's a high risk that the things you want to do or the way you want to do them will collide with this, then perhaps it is better to leave it to you.