Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

W32/X64 release please #109

Closed
MatrixView opened this issue Aug 3, 2016 · 24 comments
Closed

W32/X64 release please #109

MatrixView opened this issue Aug 3, 2016 · 24 comments

Comments

@MatrixView
Copy link

Wow, Miller seems like a great command-line tool!

I would love to use it, but there doesn't seem to be a Windows version yet...
Could you make/compile one?

@johnkerl
Copy link
Owner

johnkerl commented Aug 4, 2016

That would be a significant task as Miller is *nix-centric ... maybe within Cygwin?

@johnkerl
Copy link
Owner

johnkerl commented Aug 6, 2016

The main unicisms are (1) mmap, which could be lived without (i.e. #ifdefed away) as I already have two versions of input-record readers: one stdio and one mmap, the latter for performance when input is a file and the former out of necessity for stdin; and (2) popen which would be more feature-crippling to live without as it's key for the prepipe and redirected-output features (the latter is new in 4.4.0).

@sergeevabc
Copy link

sergeevabc commented Dec 14, 2016

It hurts to know that merits of Miller is locked up in Unix ecosystem
like scrolls of wisdom were kept away from the public domain once.

@jungle-boogie
Copy link
Contributor

It's funny you're referencing unix, the public domain and microsoft (implied based on the issue) in the same sentences. You must be trolling.

@sergeevabc
Copy link

sergeevabc commented Dec 14, 2016

@jungle-boogie,
Windows is the platform of the majority, Unix is not because of a steep learning curve.
As a valuable tool (e.g. Miller) is developed for Unix only, the availability of benefits suffers.

@johnkerl
Copy link
Owner

a windows port would benefit a lot of people, quite true. i'm trying to wrap up 5.0.0 which will take some more weeks. thank you!!

@johnkerl
Copy link
Owner

johnkerl commented Jan 9, 2017

@sergeevabc it is probably poor consolation, but Miller works fine on Mac as well. (In fact it's my primary development environment.)

I have some 5.0.0 work to finish up, and more importantly, some significant things to work on in RL over the next few weeks, but I've found some spare Windows hardware I can use, and have hooked into AppVeyor which AFAICT is a lot like Travis but for Windows. It ought to be relatively quick to get everything except mmap support (which is dowithoutable) and popen support (which is important but not absolutely essential to Miller) working. Then, I can work on getting the Windows analog of popen working.

@sergeevabc
Copy link

@johnkerl, thank you for letting me know. Happy New Year as well.

@johnkerl
Copy link
Owner

johnkerl commented Apr 15, 2017

It's really close. Current status is

http://stackoverflow.com/questions/43421734/looking-for-static-libpcreposix-a-on-msys2

If I deliver mlr.exe and one of the msys2 DLLs then people can run it with

C:\> set PATH=%PATH%;\msys64\mingw64\bin

followed by

C:\> mlr ...

which is janky.

@johnkerl
Copy link
Owner

@sergeevabc
Copy link

sergeevabc commented Apr 16, 2017

All three files required by 5.1.0w are put into \Miller, then .exe is executed, yet it leads to failure so far.

@johnkerl
Copy link
Owner

OK. Are you on 32bit or 64bit Windows? And, what Windows version?

@johnkerl
Copy link
Owner

johnkerl commented Apr 16, 2017

@sergeevabc: Sorry, couldn't read that message. But, I noticed a typo in the files delivered. Please redownload from

https://github.com/johnkerl/miller/releases/tag/v5.1.0w

My apologies for the misdirect!! :(

@sergeevabc
Copy link

@johnkerl, now it works as expected, thanks for a quick reply.

@johnkerl
Copy link
Owner

:)

@MatrixView
Copy link
Author

@johnkerl, thx so much for providing a Windows release of Miller. It's great to finally be able to use it!

I've gone through a few "Miller in 10 minutes" examples to get the grasp of it, and what I've found is that it
does not handle creation of files well.

i.e
mlr --csv --from example.csv put -q 'tee > $shape.".csv", $*'

This will create and error and one temporary file. This may be due to the fact that quotation on Windows is a bit different than Unix, but also might be because of the different file system calls under Windows. Could you look into this when you have the time to do so?

Thanx again!!!

@johnkerl
Copy link
Owner

Thanks, I'll check it out!

@fraxen
Copy link

fraxen commented Apr 24, 2017

@MatrixView and @johnkerl - I was able to go through and test the "Miller in 10 minutes" on my Windows 64-bit machine - I just had to change the quotations a bit.

Windows doesn't like ' for quotes, and quotes within quotes need to be escaped with a triple double-quote.

Here are the Windows equivalents for commands in those exercises that works for me:

mlr --icsv --opprint filter " $color == """red""" " example.csv
mlr --icsv --opprint filter "$color == """red""" && $flag == 1" example.csv
mlr --icsv --opprint put "$ratio = $quantity / $rate; $color_shape = $color . """_""" . $shape" example.csv
mlr --icsv --ojson put "$ratio = $quantity/$rate; $shape = toupper($shape)" example.csv
mlr --csv --from example.csv put -q "tee > $shape.""".csv""", $*"

So the mlr windows release seems to work fine, thanks for preparing this!

@MatrixView
Copy link
Author

@fraxen, Thx, I'll try that!

@johnkerl
Copy link
Owner

Yuck re the triple quotes ................... but I'm glad it works.

I didn't have a chance to dig in this weekend so thanks for doing it!!!

I'll make a note in the cookbook & elsewhere about the quoting mechanism for Windows. Also this is an advertisement for using the put -f option which should encapsulate most of this (at the expense of turning ad-hoc one-liners into script calls).

@johnkerl
Copy link
Owner

johnkerl commented Jul 3, 2017

The Appveyor build is now working:

https://ci.appveyor.com/project/johnkerl/miller/history

While I was able to get msys-2.0.dll statically linked in on a Windows laptop, from the Appveyor build it's still non-static -- so you still need mlr.exe along with msys-2.0.dll. Another unresolved issue is unit tests are still not running in Appveyor (on my laptop, they fail due to an issue with the semantics of mkstemp on MSYS2.)

Nonetheless, this is forward progress.

@kankri
Copy link

kankri commented Sep 11, 2017

Release v5.1.0w binaries work nicely for me in WIndows, but there's something wrong with release v5.2.0: mlr.exe is only 37KB!

And v5.2.2 seems to be missing Windows binaries completely.

Unfortunately I cannot help at this time, but I hope you can get Windows binaries generated automatically for each release. It would help me advocate the tool to my colleagues.

@johnkerl
Copy link
Owner

@kankri thank you! The appveyor build should resolve this. I've been dealing with a lot of RL items recently; I should prioritize Appveyor-artifact setup.

@johnkerl
Copy link
Owner

This is a duplicate of #167

@johnkerl johnkerl removed the active label Apr 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants