mirror of
https://gitlab.com/scemama/irpf90.git
synced 2024-12-21 20:03:33 +01:00
Added vim files, parallel exit OK
Version:1.2.6
This commit is contained in:
parent
6763923a94
commit
b7ab85315e
@ -8,7 +8,7 @@ END_PROVIDER
|
|||||||
|
|
||||||
BEGIN_PROVIDER [ integer, v ]
|
BEGIN_PROVIDER [ integer, v ]
|
||||||
v = u2+w+2
|
v = u2+w+2
|
||||||
END_PROVIDER
|
!END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ integer, u1 ]
|
BEGIN_PROVIDER [ integer, u1 ]
|
||||||
integer :: fu
|
integer :: fu
|
||||||
|
@ -37,6 +37,7 @@ $prefix=/usr
|
|||||||
$exec_prefix=/usr
|
$exec_prefix=/usr
|
||||||
$bindir=${exec_prefix}/bin
|
$bindir=${exec_prefix}/bin
|
||||||
$datadir=${exec_prefix}/share/irpf90/src
|
$datadir=${exec_prefix}/share/irpf90/src
|
||||||
|
$vimdir=${exec_prefix}/share/irpf90/vim
|
||||||
$docdir=${prefix}/share/irpf90/doc
|
$docdir=${prefix}/share/irpf90/doc
|
||||||
$mandir=${prefix}/man
|
$mandir=${prefix}/man
|
||||||
$srcdir=..
|
$srcdir=..
|
||||||
@ -44,14 +45,18 @@ $srcdir=..
|
|||||||
# Executables
|
# Executables
|
||||||
# -----------
|
# -----------
|
||||||
|
|
||||||
|
|
||||||
%system all
|
%system all
|
||||||
%description IRP-Fortran90 preprocessor
|
%description IRP-Fortran90 preprocessor
|
||||||
f 0444 root sys ${mandir}/man1/irpf90.1.gz ${srcdir}/man/man1/irpf90.1.gz
|
f 0444 root sys ${mandir}/man1/irpf90.1.gz ${srcdir}/man/man1/irpf90.1.gz
|
||||||
f 0444 root sys ${mandir}/man1/irpman.1.gz ${srcdir}/man/man1/irpman.1.gz
|
f 0444 root sys ${mandir}/man1/irpman.1.gz ${srcdir}/man/man1/irpman.1.gz
|
||||||
|
f 0444 root sys ${vimdir}/irpf90.vim ${srcdir}/vim/irpf90.vim
|
||||||
f 0555 root sys ${bindir}/irpf90 ${srcdir}/bin/irpf90
|
f 0555 root sys ${bindir}/irpf90 ${srcdir}/bin/irpf90
|
||||||
f 0555 root sys ${bindir}/irpman ${srcdir}/bin/irpman
|
f 0555 root sys ${bindir}/irpman ${srcdir}/bin/irpman
|
||||||
f 0555 root sys ${datadir}/ ${srcdir}/src/*.py
|
f 0555 root sys ${datadir}/ ${srcdir}/src/*.py
|
||||||
f 0444 root sys ${docdir}/README ${srcdir}/README
|
f 0444 root sys ${docdir}/README ${srcdir}/README
|
||||||
f 0444 root sys ${docdir}/LICENSE ${srcdir}/LICENSE
|
f 0444 root sys ${docdir}/LICENSE ${srcdir}/LICENSE
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import vim
|
||||||
import os,sys
|
import os,sys
|
||||||
wd = os.path.abspath(os.path.dirname(__file__))
|
wd = os.path.abspath(os.path.dirname(__file__))
|
||||||
sys.setcheckinterval(1000)
|
sys.setcheckinterval(1000)
|
||||||
@ -34,6 +35,8 @@ sys.path.insert(0,(wd+"/../src/"))
|
|||||||
def main():
|
def main():
|
||||||
from command_line import command_line
|
from command_line import command_line
|
||||||
|
|
||||||
|
vim.install()
|
||||||
|
|
||||||
if command_line.do_help:
|
if command_line.do_help:
|
||||||
command_line.usage()
|
command_line.usage()
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ class Continue(Line):
|
|||||||
return "%20s:%5d : %s"%("Continue",self.i,self.text)
|
return "%20s:%5d : %s"%("Continue",self.i,self.text)
|
||||||
|
|
||||||
class Begin_provider(Line):
|
class Begin_provider(Line):
|
||||||
|
str = "Provider"
|
||||||
def __init__(self,i,text,filename):
|
def __init__(self,i,text,filename):
|
||||||
Line.__init__(self,i,text,filename)
|
Line.__init__(self,i,text,filename)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
@ -264,18 +265,21 @@ class End_select(Line):
|
|||||||
return "%20s:%5d : %s"%("End_select",self.i,self.text)
|
return "%20s:%5d : %s"%("End_select",self.i,self.text)
|
||||||
|
|
||||||
class Program(Line):
|
class Program(Line):
|
||||||
|
str = "Program"
|
||||||
def __init__(self,i,text,filename):
|
def __init__(self,i,text,filename):
|
||||||
Line.__init__(self,i,text,filename)
|
Line.__init__(self,i,text,filename)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "%20s:%5d : %s"%("Program",self.i,self.text)
|
return "%20s:%5d : %s"%("Program",self.i,self.text)
|
||||||
|
|
||||||
class Subroutine(Line):
|
class Subroutine(Line):
|
||||||
|
str = "Subroutine"
|
||||||
def __init__(self,i,text,filename):
|
def __init__(self,i,text,filename):
|
||||||
Line.__init__(self,i,text,filename)
|
Line.__init__(self,i,text,filename)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "%20s:%5d : %s"%("Subroutine",self.i,self.text)
|
return "%20s:%5d : %s"%("Subroutine",self.i,self.text)
|
||||||
|
|
||||||
class Function(Line):
|
class Function(Line):
|
||||||
|
str = "Function"
|
||||||
def __init__(self,i,text,filename):
|
def __init__(self,i,text,filename):
|
||||||
Line.__init__(self,i,text,filename)
|
Line.__init__(self,i,text,filename)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
51
src/locks.py
Normal file
51
src/locks.py
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
# IRPF90 is a Fortran90 preprocessor written in Python for programming using
|
||||||
|
# the Implicit Reference to Parameters (IRP) method.
|
||||||
|
# Copyright (C) 2009 Anthony SCEMAMA
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Anthony Scemama
|
||||||
|
# LCPQ - IRSAMC - CNRS
|
||||||
|
# Universite Paul Sabatier
|
||||||
|
# 118, route de Narbonne
|
||||||
|
# 31062 Toulouse Cedex 4
|
||||||
|
# scemama@irsamc.ups-tlse.fr
|
||||||
|
|
||||||
|
|
||||||
|
from command_line import command_line
|
||||||
|
|
||||||
|
from irpf90_t import *
|
||||||
|
from util import *
|
||||||
|
from variables import variables
|
||||||
|
FILENAME=irpdir+'irp_locks.irp.F90'
|
||||||
|
|
||||||
|
def create():
|
||||||
|
out = []
|
||||||
|
l = variables.keys()
|
||||||
|
l.sort
|
||||||
|
for v in l:
|
||||||
|
var = variables[v]
|
||||||
|
out += var.locker
|
||||||
|
|
||||||
|
out = map(lambda x: "%s\n"%(x),out)
|
||||||
|
if not same_file(FILENAME,out):
|
||||||
|
file = open(FILENAME,'w')
|
||||||
|
file.writelines(out)
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
create()
|
||||||
|
|
@ -782,8 +782,8 @@ def check_begin_end(text):
|
|||||||
if type(line) == x:
|
if type(line) == x:
|
||||||
return
|
return
|
||||||
if type(line) in [ Subroutine, Function, Program, Begin_provider ]:
|
if type(line) in [ Subroutine, Function, Program, Begin_provider ]:
|
||||||
error.fail(text[begin],type(line)+" is not closed")
|
error.fail(text[begin],type(line).str+" is not closed")
|
||||||
error.fail(text[begin],type(line) + " is not closed")
|
error.fail(text[begin],type(line).str + " is not closed")
|
||||||
|
|
||||||
|
|
||||||
level = 0
|
level = 0
|
||||||
|
10
src/util.py
10
src/util.py
@ -166,7 +166,6 @@ def parallel_loop(f,source):
|
|||||||
result = []
|
result = []
|
||||||
for filename, text in src[thread_id]:
|
for filename, text in src[thread_id]:
|
||||||
result.append( (filename, f(filename,text)) )
|
result.append( (filename, f(filename,text)) )
|
||||||
|
|
||||||
result.sort()
|
result.sort()
|
||||||
|
|
||||||
if fork == 0:
|
if fork == 0:
|
||||||
@ -174,11 +173,16 @@ def parallel_loop(f,source):
|
|||||||
w.close()
|
w.close()
|
||||||
os._exit(0)
|
os._exit(0)
|
||||||
|
|
||||||
|
OK = True
|
||||||
|
for i in xrange(1,NTHREADS):
|
||||||
|
if os.waitpid(pidlist[i],0)[1] != 0:
|
||||||
|
OK = False
|
||||||
|
if not OK:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
for i in xrange(1,NTHREADS):
|
for i in xrange(1,NTHREADS):
|
||||||
result += pickle.load(r[i])
|
result += pickle.load(r[i])
|
||||||
r[i].close()
|
r[i].close()
|
||||||
if os.waitpid(pidlist[i],0)[1] != 0:
|
|
||||||
raise OSError
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
version = "1.2.5"
|
version = "1.2.6"
|
||||||
|
23
src/vim.py
Normal file
23
src/vim.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#/usr/bin/python
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
def install():
|
||||||
|
VIM = os.environ["HOME"]+"/.vim"
|
||||||
|
try:
|
||||||
|
if os.access(VIM+"/syntax/irpf90.vim",os.F_OK):
|
||||||
|
return
|
||||||
|
if not os.access(VIM,os.F_OK):
|
||||||
|
os.mkdir(VIM)
|
||||||
|
file = open(VIM+"/filetype.vim","a")
|
||||||
|
file.write("au BufRead,BufNewFile *.irp.f setfiletype irpf90")
|
||||||
|
file.close()
|
||||||
|
if not os.access(VIM+"/syntax",os.F_OK):
|
||||||
|
os.mkdir(VIM+"/syntax")
|
||||||
|
wd = os.path.abspath(os.path.dirname(__file__))+"/../vim"
|
||||||
|
os.symlink(wd+"/irpf90.vim",VIM+"/syntax/irpf90.vim")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
install()
|
@ -2,7 +2,7 @@
|
|||||||
" Language: IRPF90
|
" Language: IRPF90
|
||||||
" Version: 0.1
|
" Version: 0.1
|
||||||
" URL:
|
" URL:
|
||||||
" Last Change: 2010 Jun. 9
|
" Last Change: 2011 Nov. 9
|
||||||
" Maintainer:
|
" Maintainer:
|
||||||
" Usage: Do :help irpf90-syntax from Vim
|
" Usage: Do :help irpf90-syntax from Vim
|
||||||
" Credits:
|
" Credits:
|
||||||
@ -365,5 +365,10 @@ if !exists("did_irpf90_syn_inits")
|
|||||||
delcommand HiLink
|
delcommand HiLink
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
fun! ReadMan()
|
||||||
|
let s:man_word = expand('<cword>')
|
||||||
|
:exe ":!irpman " . s:man_word
|
||||||
|
endfun
|
||||||
|
map K :call ReadMan()<CR>
|
||||||
|
|
||||||
" vim: ts=8 tw=132
|
" vim: ts=8 tw=132
|
||||||
|
Loading…
Reference in New Issue
Block a user