61
  • What does the m stand for in python3.6m ?
  • How does it differ to non m version?
  • In which case would I prefer to use python3.6m rather than python3.6?
Dimitris Fasarakis Hilliard
  • 150,925
  • 31
  • 268
  • 253
Michael D.
  • 1,795
  • 2
  • 18
  • 25

1 Answers1

70

What does the m stand for in python3.6m?

It signifies that Python was configured --with-pymalloc which enables a specialized implementation for allocating memory that's faster than the system malloc.

How does it differ to non m version?

The non m version is, obviously, not configured with it.

In which case would I prefer to use python3.6m rather than python3.6?

Probably most usefull when writing C extensions, in general it shouldn't be something you should worry about.

Dimitris Fasarakis Hilliard
  • 150,925
  • 31
  • 268
  • 253
  • 7
    This answer sounds satisfying, but not when my machine tells me that both executables are exactly 4576440 bytes in size. (pretty clean ubuntu 18.04 server install). I demand to know why they are at least not symlinked to each other. waste of disk. grumble. – Steven Lu May 03 '18 at 01:49
  • 4
    And yes they have the same SHA1 hash too. – Steven Lu May 04 '18 at 03:47
  • i have noticed that they have different header files, that may be the difference – Diedre May 16 '18 at 18:34
  • @StevenLu app may choose to behave differently depending on its invocation name. not sure about this particular case, though – ratijas Jun 25 '18 at 08:02
  • 7
    if python m is faster, why would one not use that exclusively? – Kevin Buchs Feb 08 '19 at 22:46
  • 6
    @StevenLu On my system they *are* the same: `ls -i python3.7 python3.7m` reports `8943110 python3.7 8943110 python3.7m`; same inode, so same file. It's a hard link. I presume this is done so that `#!/usr/bin/env python3.7m` works? – Martin Tournoij Mar 13 '19 at 09:48
  • sweet! @MartinTournoij – Steven Lu Mar 13 '19 at 13:36