Diferencia entre python3 y python3m ejecutables

¿Cuál es la diferencia entre los /usr/bin/python3 y /usr/bin/python3m python3m?

Los estoy observando en Ubuntu 13.04, pero Google sugiere que también existen en otras distribuciones.

Los dos archivos tienen la misma md5sum, pero no parecen ser enlaces simbólicos o enlaces duros; Los dos archivos tienen diferentes números de inodo devueltos por ls -li y las pruebas de find -xdev -samefile /usr/bin/python3.3 no devuelven ningún otro archivo.

Alguien hizo una pregunta similar en AskUbuntu , pero quería averiguar más sobre la diferencia entre los dos archivos.

El mérito de esto se debe a Chepner por señalar que ya tenía el enlace a la solución.

Las implementaciones de Python PUEDEN incluir indicadores adicionales en la etiqueta de nombre de archivo, según corresponda. Por ejemplo, en los sistemas POSIX, estos indicadores también contribuirán al nombre del archivo:

–with-pydebug (bandera: d)

–with-pymalloc (bandera: m)

–with-wide-unicode (flag: u)

a través de PEP 3149 .

Respecto a la bandera m específicamente, esto es lo que Pymalloc es:

Pymalloc, un asignador de objetos especializado escrito por Vladimir Marangozov, fue una característica agregada a Python 2.1. Pymalloc pretende ser más rápido que el sistema malloc () y tener menos sobrecarga de memoria para los patrones de asignación típicos de los progtwigs de Python. El asignador usa la función malloc () de C para obtener grandes grupos de memoria y luego cumple con solicitudes de memoria más pequeñas de estos grupos.

a través de Lo nuevo en Python 2.3

Finalmente, los dos archivos pueden estar enlazados en algunos sistemas. Si bien los dos archivos tienen números de inodo diferentes en mi sistema Ubuntu 13.04 (por lo tanto, son archivos diferentes), una publicación comp.lang.python de hace dos años muestra que una vez estuvieron vinculados.