LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 02-25-2017, 04:07 AM   #16
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018

Quote:
Originally Posted by dijetlo View Post
What if we didn't have a default python version? We modified the build scripts and packages to explicitly point to the appropriate python framework? Would that address your concerns?
Not really a concern, just an observation, but yes that's what I was suggesting.

Quote:
Originally Posted by dijetlo View Post
tomorrows coming, you can be prepared for it or a victim of it, there is no third option I'm aware of other than death and honestly, I think I'd rather get ready for it than hope for that).
I'm all for tomorrow; I'd just prefer that it be better, or at least as good, as yesterday.


Quote:
Originally Posted by dijetlo View Post
Once upon a time, when big iron ruled the digital world, I can distinctly remember thinking... what's wrong with these ancient turds? Don't they realize technology is rocketing forward? Look at the improvements we've made in the mainframe job queue!!! I don't think I'm ready to be an ancient turd (though the calendar tells me otherwise)
JES2 forever baby! You can keep your silly JES3.
 
Old 02-25-2017, 04:57 AM   #17
audriusk
Member
 
Registered: Mar 2011
Location: Klaipėda, Lithuania
Distribution: Slackware
Posts: 360

Rep: Reputation: 199Reputation: 199
Looks like we need to clarify some things in this thread:
Quote:
Python 2 has been around a decade and nobodies found a way to kill it.
So far that's true, but it won't last much longer. From PEP 373:
Quote:
The End Of Life date (EOL, sunset date) for Python 2.7 has been moved five years into the future, to 2020. This decision was made to clarify the status of Python 2.7 and relieve worries for those users who cannot yet migrate to Python 3.
<...>
There will be no Python 2.8 (see PEP 404).
---
Quote:
If/when they ever get around to another incompatible python version such as python4, or 5 or 6
Quote:
I'd suspect python3 will have the same lifespan since python rides directly on C++ libraries, so you don't normally see a major revision in python unless you see a major revision in C.
From blog post by Nick Coghlan, one of CPython core developers:
Quote:
My current expectation is that Python 4.0 will merely be "the release that comes after Python 3.9". That's it. No profound changes to the language, no major backwards compatibility breaks - going from Python 3.9 to 4.0 should be as uneventful as going from Python 3.3 to 3.4 (or from 2.6 to 2.7).
I also want to add that while CPython is indeed written in C (not C++), the move to Python 3 wasn't related to C or C++ "major revision" in any way. The intention was to clean up Python language, which required some backwards incompatible changes.

And currently there's no simple way for Slackware to switch from Python 2 to 3 completely, because there are still projects that haven't transitioned to Python 3 yet, e.g. Mercurial (although they're working on it).
 
1 members found this post helpful.
Old 02-25-2017, 05:10 AM   #18
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018
Quote:
My current expectation is that Python 4.0 will merely be "the release that comes after Python 3.9". That's it. No profound changes to the language, no major backwards compatibility breaks - going from Python 3.9 to 4.0 should be as uneventful as going from Python 3.3 to 3.4 (or from 2.6 to 2.7).
Then clearly it should be called 3.10. Just saying....

Nice to see the python guys continuing to make a right pig's breakfast out of the versioning. But, if they do indeed go down this route, my suggestion of leaving the executable as 'python3' clearly doesn't make sense going forward.

Last edited by GazL; 02-25-2017 at 05:25 AM.
 
Old 02-25-2017, 05:25 AM   #19
audriusk
Member
 
Registered: Mar 2011
Location: Klaipėda, Lithuania
Distribution: Slackware
Posts: 360

Rep: Reputation: 199Reputation: 199
You should say that to OpenBSD developers as well.

CPython doesn't follow semantic versioning -- I guess that's how developers prefer it.
 
Old 02-25-2017, 05:27 AM   #20
syg00
LQ Veteran
 
Registered: Aug 2003
Location: Australia
Distribution: Lots ...
Posts: 21,124

Rep: Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120Reputation: 4120
perl 6 anyone ?.

... sorry, couldn't resist.
It's bad enough we get a new language every other week, but incompatible versions are just a burr under everyones saddle.
 
Old 02-25-2017, 05:28 AM   #21
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018
And Linus, and a whole heap of other projects, sadly.
 
Old 02-25-2017, 05:30 AM   #22
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018Reputation: 5018
Quote:
Originally Posted by syg00 View Post
perl 6 anyone ?.

... sorry, couldn't resist.
It's bad enough we get a new language every other week, but incompatible versions are just a burr under everyones saddle.
From what I'd read I thought the Perl guys has already stated that Perl6 is not intended as a new version of Perl5 but a completely new language and should be treated as such. They seem to have their heads on a little better than the python camp in that regard.
 
Old 02-25-2017, 07:05 AM   #23
Gerard Lally
Senior Member
 
Registered: Sep 2009
Location: Leinster, IE
Distribution: Slackware, NetBSD
Posts: 2,177

Rep: Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761Reputation: 1761
The Tcl devs must be having a good laugh among themselves, seeing how the headlong rush to "Something Better than Tcl" turned out.
 
Old 02-25-2017, 10:49 AM   #24
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 11,220

Rep: Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319
Quote:
Originally Posted by audriusk View Post
And currently there's no simple way for Slackware to switch from Python 2 to 3 completely, because there are still projects that haven't transitioned to Python 3 yet, e.g. Mercurial (although they're working on it).
If it ever gets to be just Mercurial holding things up, then I'd recommend moving it and its dependencies to /extra.

Mercurial isn't exactly a core component.

Last edited by dugan; 02-25-2017 at 10:52 AM.
 
Old 02-25-2017, 11:36 AM   #25
dijetlo
Senior Member
 
Registered: Jan 2009
Location: RHELtopia....
Distribution: Solaris 11.2/Slackware/RHEL/
Posts: 1,491
Blog Entries: 2

Rep: Reputation: Disabled
Quote:
From blog post by Nick Coghlan, one of CPython core developers: ...My current expectation is that Python 4.0 will merely be "the release that comes after Python 3.9"...
With all respect, my expectation is based on the behavior of the inventor and lead developer of Python, Guido von Rossum, who has never done what this guy is suggesting. Guido runs the git at Python.org, I think Nick is expressing a pure development perspective, driven more by a strong belief in CI/CD conceptualizations than real world requirements. This is a programming language, the structure of its naming convention is key for implementation purposes. Consider this, if Guido followed Nicks advice and at some point did have to break backwards compatibility again to keep the language competitive with node, ruby, groovy, go (etc. etc. etc.) how would they do that?

Observe: This is why Slackware even has a default version of python.
Quote:
lrwxrwxrwx 1 root root 9 Dec 19 18:48 /usr/bin/python -> python2.7
Fortunately, that unruly child has two better behaved little brothers...
Quote:
lrwxrwxrwx 1 root root 9 Dec 19 18:48 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root 9 Feb 25 07:24 /usr/bin/python3 -> python3.6
We could very easily become a python agnostic distro and we even have a significant advantage over other Linux implementations because... we don't even have python3 in the core package set. That means at the distro level every one of these
#!/usr/bin/python || #!/usr/bin/env python
References python2 which means if you append a "2", you'll use the better behaved python2 -> python2.7 pointer in /usr/bin.
We don't have to look at the code, if it's anything other than python2, it hasn't been running on these nodes.

Then, the new stuff (When we get around to adding it... looking at you BDFL) and the old stuff would run side by side and we'd be ready for whatever tomorrow brings. It seems like a very "Slackware" type solution to the problem, nobody would be "forced" to do anything and the argument about "default" python disappears cause we aint go no damn default python, we just run the python you ask for.

Detail
Python3 developers specify the python version in their code, either with a "require" or that shell line (#!/usr/bin/python3). Python2 code assumes python2 as the default, they don't normally instantiate with #!/usr/bin/python2. and only use "require" when their code has backward compatibility issues.
Getting the pointer in the bash hack fixed is trivial, the only issue I wondering about is how do we identify the "requires" references in the OO code and do we even need to? (i.e Does the framework find it's libraries at install or does it reference that evil pointer). I need to construct a bulletproof test to confirm it doesn't before I can go to the next step
I'm working on verifying that now, btw so any suggestions would be most welcome.

Last edited by dijetlo; 02-25-2017 at 12:20 PM.
 
1 members found this post helpful.
Old 02-25-2017, 11:54 AM   #26
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 11,220

Rep: Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319
Quote:
Originally Posted by dijetlo View Post
Consider this, if Guido followed Nicks advice and at some point did have to break backwards compatibility again to keep the language competitive with node, ruby, groovy, go (etc. etc. etc.) how would they do that?
Type annotations and async IO are the recent developments keeping it competitive with Node (with Typescript) and Go. Not sure why Groovy and Ruby (excuse me, Ruby?) are on the list?

Last edited by dugan; 02-25-2017 at 11:56 AM.
 
Old 02-25-2017, 12:38 PM   #27
dijetlo
Senior Member
 
Registered: Jan 2009
Location: RHELtopia....
Distribution: Solaris 11.2/Slackware/RHEL/
Posts: 1,491
Blog Entries: 2

Rep: Reputation: Disabled
Quote:
Not sure why Groovy and Ruby are on the list?
They're common automation dev/ops languages. Groovy is what happens when you don't put a leash on your Jenkins devs and Ruby is native in Chef and Puppet.
Quote:
(excuse me, Ruby?)
Don't be a hater, I'll code in it if you put a pistol to my head, I just prefer python
Also Ruby is in the distro, unlike python3 ...
 
Old 02-25-2017, 09:39 PM   #28
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
gradle currently uses groovy as its implementation language. (Moving towards kotlin, however.)

Grails also uses groovy, but nobody in their right mind should care about that.
 
Old 02-26-2017, 10:39 AM   #29
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 11,220

Rep: Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319Reputation: 5319
Quote:
Originally Posted by dijetlo View Post
(i.e Does the framework find it's libraries at install or does it reference that evil pointer).
At install.
 
Old 02-26-2017, 04:28 PM   #30
dijetlo
Senior Member
 
Registered: Jan 2009
Location: RHELtopia....
Distribution: Solaris 11.2/Slackware/RHEL/
Posts: 1,491
Blog Entries: 2

Rep: Reputation: Disabled
@Dugan
Quote:
At install.
Mmmm ... that was my thought too, and the frameworks can certainly find their libs but checks from OO code are commonly made with a 'requires' directive or the old school equivalent sys.get_version, both of which reference the pointer /usr/bin/python so, no mercy there. Sorry I wasn't clearer in my initial question, you are exactly right, but it does us no good... .

Effectively, we'd end up doing what arch did so we'd end up with what arch got (a default version of python rather than context driven matching aka pygnosticism). When you consider the impact that would have on the Slackware user base I imagine the fires are gonna have to burn pretty high before the BDFL considers flipping the pointer to python3.

I've been working on the idea of replacing the softlink (/usr/bin/python) with a tdb object so effectively registering the calling process to a python context and returning the inode reference for /usr/bin/python2 or /usr/bin/python3 based on that context. It's got lot's of delightful possibilities, including keeping user-space consistent with current expectations while allowing P2 and P3 code to find their respective frameworks.
Registering the context wouldn't give anybody heartburn, initial prog_start -> if it works associate context -> if it fails auto-restart in second context -> if it works associate context -> if it fails... Somethings wrong with your python dude, we only got two and we tried 'em both.

Tdb is about the worst documented module I've ever seen ( I say that way too often for it to actually be true though...) so progress is not shockingly good. Anybody know of a good reference or tutorial (I aint proud). I'd use redis but it's ex-distro. Also, it runs a server which would cause some angst among the users, demons are not popular among the Slackware faithful. The tdb object would register on a ps but I'll call it dbus-caught-you-looking and it will likely slide by unnoticed.

@ Richard
Quote:
gradle currently uses groovy as its implementation language.
Well apparently they got bored on the multi-threaded maven infrastructure. You can pick them out of the crowd by their intense desire to slather Jenkins on everything (Apparently Jenkins has no ssh functionality which makes it an odd choice for managing virtual environments) also... Isn't that why we chased Chef off these nodes? Jenkins comes with the added bonus of distributing the build process across every node with an agent, you can imagine the impact that has on scaling algorithms...
Still, some are clever and quick to learn, most don't think it's worth the time. The smart ones will hang around and contribute, the dumb ones will get MBAs and become our bosses... It's the circle of life...

Last edited by dijetlo; 02-26-2017 at 05:00 PM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
How to set Emacs default for Python output blastradius Programming 1 03-15-2013 03:44 PM
python 2.7 anytime? metageek Slackware 8 03-05-2011 01:31 PM
[SOLVED] where is default python set? splintercdo Slackware 4 02-14-2011 01:27 PM
Change default Python version rocka Debian 13 03-31-2009 05:26 PM
Alsa 1.0.6 anytime? jeru Debian 1 08-22-2004 03:08 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:50 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration