§
    PŠtjý'  ã                  óÖ   — d dl mZ d dlmZmZ d dlmZ d dlZd dlZd dl	Z	d dl
Z
ddlmZmZmZ  G d„ d¦  «        Z G d	„ d
e¦  «        Zd„ Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )Úannotations)ÚCallableÚOptional)ÚOrderedDictNé   )Úfind_binary_of_commandÚunique_listÚCompileErrorc                  ó�   — e Zd ZU dZded<   ded<   dZded<   ded<   d	ed
<   ded<   ded<   	 	 	 dd„Zedd„¦   «         Zd„ Z	d„ Z
dS )ÚCompilerRunnera’   CompilerRunner base class.

    Parameters
    ==========

    sources : list of str
        Paths to sources.
    out : str
    flags : iterable of str
        Compiler flags.
    run_linker : bool
    compiler_name_exe : (str, str) tuple
        Tuple of compiler name &  command to call.
    cwd : str
        Path of root of relative paths.
    include_dirs : list of str
        Include directories.
    libraries : list of str
        Libraries to link against.
    library_dirs : list of str
        Paths to search for shared libraries.
    std : str
        Standard string, e.g. ``'c++11'``, ``'c99'``, ``'f2003'``.
    define: iterable of strings
        macros to define
    undef : iterable of strings
        macros to undefine
    preferred_vendor : string
        name of preferred vendor e.g. 'gnu' or 'intel'

    Methods
    =======

    run():
        Invoke compilation as a subprocess.

    ÚstrÚenviron_key_compilerÚenviron_key_flagsÚLDFLAGSÚenviron_key_ldflagszdict[str, str]Úcompiler_dictztuple[None | str, ...]Ú	standardsz)dict[str, Callable[[Optional[str]], str]]Ústd_formaterÚcompiler_name_vendor_mappingNTú.c           	     ó>	  — t          |t          ¦  «        rt          d¦  «        ‚t          |¦  «        | _        || _        |pg | _        t          j         	                    | j
        ¦  «        r7| xj        t          j        | j
                                      ¦   «         z  c_        || _        |r|\  | _        | _        �nst          j         	                    | j        ¦  «        r²t          j        | j                 | _        | j                             ¦   «         D ]\  }}|| j        v r|| _        || _         n^Œt          | j                             ¦   «         ¦  «        d         \  | _        | _        t'          j        d| j        ›d| j        ›�¦  «         n�|€ t          j         	                    dd ¦  «        }|                      |¦  «        \  | _        | _        | _        | j        €Lt          d                     d                     | j                             ¦   «         ¦  «        ¦  «        ¦  «        ‚|pg | _        |pg | _        |pg | _        |pg | _        |	pg | _        |
p| j        d         | _        || _         | j         r)t          tC          d„ | j        ¦  «        ¦  «        | _        n#d	| j        vr| j         "                    d	¦  «         | j        r8| j         "                     | j#        | j                 | j        ¦  «        ¦  «         |pg d
„ tI          t          j%        t          j         	                    | j&        d¦  «                             ¦   «         ¦  «        D ¦   «         z   | _'        |��,tQ          j)        d¦  «        }tQ          j)        d¦  «        }|du rltU          tI          |j+        |¦  «        ¦  «        rtY          d¦  «        ‚tU          tI          |j+        |¦  «        ¦  «        rd S | "                    d¦  «         d S |du rltU          tI          |j+        |¦  «        ¦  «        rd S tU          tI          |j+        |¦  «        ¦  «        rtY          d¦  «        ‚| "                    d¦  «         d S d}t          |                     |¦  «        ¦  «        ‚d S )Nz2Expected argument sources to be a list of strings.r   z*failed to determine what kind of compiler z is, assuming ÚSYMPY_COMPILER_VENDORz No compiler found (searched: {})z, c                ó   — | dk    S )Nú-c© ©Úxs    úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/utilities/_compilation/runners.pyú<lambda>z)CompilerRunner.__init__.<locals>.<lambda>o   s
   € ¨q°Dªy€ ó    r   c                ó   — g | ]
}|d k    ¯|‘ŒS )Ú r   )Ú.0Úlfs     r   ú
<listcomp>z+CompilerRunner.__init__.<locals>.<listcomp>x   s(   € ð ,ð ,ð ,°2à�2ŠXˆXð -/àˆXˆXr    r"   zno-strict-aliasing$zstrict-aliasing$Tz4Strict aliasing cannot be both enforced and disabledz-fstrict-aliasingFz-fno-strict-aliasingz:Expected argument strict_aliasing to be True/False, got {})-Ú
isinstancer   Ú
ValueErrorÚlistÚsourcesÚoutÚflagsÚosÚenvironÚgetr   ÚsplitÚcwdÚcompiler_nameÚcompiler_binaryr   r   ÚitemsÚcompiler_vendorÚwarningsÚwarnÚfind_compilerÚformatÚjoinÚvaluesÚdefineÚundefÚinclude_dirsÚ	librariesÚlibrary_dirsr   ÚstdÚ
run_linkerÚfilterÚappendr   ÚmapÚstripr   ÚlinklineÚreÚcompileÚanyÚmatchr
   )Úselfr)   r*   r+   rA   Úcompilerr0   r=   r>   r?   r@   r;   r<   Ústrict_aliasingÚpreferred_vendorrF   ÚkwargsÚkÚvÚnsa_reÚsa_reÚmsgs                         r   Ú__init__zCompilerRunner.__init__G   s€  € õ �g�sÑ#Ô#ð 	SÝÐQÑRÔRÐRÝ˜G‘}”}ˆŒØˆŒØ�[˜bˆŒ
ÝŒ:�>Š>˜$Ô0Ñ1Ô1ð 	EØˆJŒJ�"œ* TÔ%;Ô<×BÒBÑDÔDÑDˆJŒJØˆŒØð 	tØ7?Ñ4ˆDÔ Ô 4Ñ 4ÝŒZ�^Š^˜DÔ5Ñ6Ô6ð 	tÝ#%¤:¨dÔ.GÔ#HˆDÔ ØÔ*×0Ò0Ñ2Ô2ð Jð J‘��1Ø˜Ô,Ð,Ð,Ø+,�DÔ(Ø)*�DÔ&Ø�Eð -õ
 <@ÀÔ@R×@XÒ@XÑ@ZÔ@ZÑ;[Ô;[Ð\]Ô;^Ñ8�Ô$ dÔ&8Ý”�Ø#Ô3Ð3Ð3°TÔ5GÐ5GðIñ Jô Jð Jøð  Ð'Ý#%¤:§>¢>Ð2IÈ4Ñ#PÔ#PÐ ØMQ×M_ÒM_Ð`pÑMqÔMqÑJˆDÔ Ô 4°dÔ6JØÔ#Ð+Ý Ð!C×!JÒ!JÈ4Ï9Ê9ÐUYÔUg×UnÒUnÑUpÔUpÑKqÔKqÑ!rÔ!rÑsÔsÐsØ�l ˆŒØ�[˜bˆŒ
Ø(Ð.¨BˆÔØ"˜ bˆŒØ(Ð.¨BˆÔØÐ+˜$œ.¨Ô+ˆŒØ$ˆŒØŒ?ð 	(å�fÐ%8Ð%8¸$¼*ÑEÔEÑFÔFˆDŒJˆJà˜4œ:Ð%Ð%Ø”
×!Ò! $Ñ'Ô'Ð'àŒ8ð 	/ØŒJ×Òð $˜dÔ/ØÔ"ô$Ø$(¤Hñ.ô .ñ /ô /ð /ð "˜ Rð ,ð ,½ÝŒI•r”z—~’~ dÔ&>ÀÑCÔC×IÒIÑKÔKñ:
ô :
ð ,ñ ,ô ,ñ ˆŒð Ñ&Ý”ZÐ 5Ñ6Ô6ˆFÝ”JÐ1Ñ2Ô2ˆEØ $Ð&Ð&Ý•s˜6œ<¨Ñ/Ô/Ñ0Ô0ð 6Ý&Ð']Ñ^Ô^Ð^Ý�˜Uœ[¨%Ñ0Ô0Ñ1Ô1ð 6Ø�Dà—L’LÐ!4Ñ5Ô5Ð5Ð5Ð5Ø  EÐ)Ð)Ý•s˜6œ<¨Ñ/Ô/Ñ0Ô0ð =Ø�Då�3˜uœ{¨EÑ2Ô2Ñ3Ô3ð =Ý*Ð+aÑbÔbÐbàŸšÐ%;Ñ<Ô<Ð<Ð<Ð<àR�Ý  §¢¨OÑ!<Ô!<Ñ=Ô=Ð=ð) 'Ð&r    c                ó
  ‡ — t          ‰ j                             ¦   «         ¦  «        }|r-||v r|g|z   }n"t          d                     |¦  «        ¦  «        ‚t          ˆ fd„|D ¦   «         ¦  «        \  }}||‰ j        |         fS )z/ Identify a suitable C/fortran/other compiler. zUnknown vendor {}c                ó*   •— g | ]}‰j         |         ‘ŒS r   )r   )r#   r   Úclss     €r   r%   z0CompilerRunner.find_compiler.<locals>.<listcomp>›   s!   ø€ Ð,VÐ,VÐ,VÀa¨SÔ->¸qÔ-AÐ,VÐ,VÐ,Vr    )r(   r   Úkeysr'   r8   r   r   )rX   rN   Ú
candidatesÚnameÚpaths   `    r   r7   zCompilerRunner.find_compiler’   s�   ø€ õ ˜#Ô+×0Ò0Ñ2Ô2Ñ3Ô3ˆ
Øð 	OØ :Ð-Ð-Ø.Ð/°
Ñ:�
�
å Ð!4×!;Ò!;Ð<LÑ!MÔ!MÑNÔNÐNÝ+Ð,VÐ,VÐ,VÐ,VÈ:Ð,VÑ,VÔ,VÑWÔW‰
ˆˆdØ�T˜3Ô;¸DÔAÐAÐAr    c                ó  — | j         g| j        z   d„ | j        D ¦   «         z   d„ | j        D ¦   «         z   d„ | j        D ¦   «         z   | j        z   }| j        r.|d„ | j        D ¦   «         d„ | j        D ¦   «         z   | j	        z   z  }g }t          j        dd                     |¦  «        ¦  «        D ]S}t          j        |¦  «        €=||vr9|                     |¦  «         d	                     |¦  «        }t#          |¦  «        ‚ŒT|S )
zD List of arguments (str) to be passed to e.g. ``subprocess.Popen``. c                ó   — g | ]}d |z   ‘ŒS )z-Ur   ©r#   r   s     r   r%   z&CompilerRunner.cmd.<locals>.<listcomp>£   s   € Ð(Ð(Ð(˜ˆT�!‰VÐ(Ð(Ð(r    c                ó   — g | ]}d |z   ‘ŒS )z-Dr   r_   s     r   r%   z&CompilerRunner.cmd.<locals>.<listcomp>¤   s   € Ð)Ð)Ð)˜ˆT�!‰VÐ)Ð)Ð)r    c                ó   — g | ]}d |z   ‘ŒS )z-Ir   r_   s     r   r%   z&CompilerRunner.cmd.<locals>.<listcomp>¥   s   € Ð/Ð/Ð/˜ˆT�!‰VÐ/Ð/Ð/r    c                ó   — g | ]}d |z   ‘ŒS )z-Lr   r_   s     r   r%   z&CompilerRunner.cmd.<locals>.<listcomp>©   s   € Ð7Ð7Ð7 �T˜!‘VÐ7Ð7Ð7r    c                ó   — g | ]}d |z   ‘ŒS )z-lr   r_   s     r   r%   z&CompilerRunner.cmd.<locals>.<listcomp>ª   s   € Ð4Ð4Ð4 �T˜!‘VÐ4Ð4Ð4r    z\$\{(\w+)\}ú Nz$Environment variable '{}' undefined.)r2   r+   r<   r;   r=   r)   rA   r?   r>   rF   rG   Úfindallr9   r,   ÚgetenvrC   r8   r
   )rK   ÚcmdÚcountedÚenvvarrT   s        r   rg   zCompilerRunner.cmdž   sA  € ð Ô!Ð"ØŒJñà(Ð(˜TœZÐ(Ñ(Ô(ñ)ð *Ð)˜Tœ[Ð)Ñ)Ô)ñ*ð 0Ð/˜TÔ.Ð/Ñ/Ô/ñ	0ð
 ŒLñð 	ð Œ?ð 	#ØÐ7Ð7 TÔ%6Ð7Ñ7Ô7Ø4Ð4 T¤^Ð4Ñ4Ô4ñ5à”Mñ"ñ #ˆCð ˆÝ”j °·²¸#±´Ñ?Ô?ð 	,ð 	,ˆFÝŒy˜Ñ Ô Ð(Ø Ð(Ð(Ø—N’N 6Ñ*Ô*Ð*Ø@×GÒGÈÑOÔO�CÝ& sÑ+Ô+Ð+øØˆ
r    c           	     ór  — t          | j        ¦  «        | _        | j                             d| j        g¦  «         t          j                             ¦   «         }| j        |d<   t          j	        d 
                    |                      ¦   «         ¦  «        d| j        t          j        t          j        t          j        |¬¦  «        }|                     ¦   «         }	 |d                              d¦  «        | _        n0# t"          $ r# |d                              d¦  «        | _        Y nw xY w|j        | _        | j        dk    rhd	                     d 
                    |                      ¦   «         ¦  «        | j        t+          | j        ¦  «        | j        ¦  «        }t-          |¦  «        ‚| j        | j        fS )
Nz-oÚPWDrd   T)Úshellr0   ÚstdinÚstdoutÚstderrÚenvr   zutf-8z
iso-8859-1z3Error executing '{}' in {} (exited status {}):
 {}
)r	   r+   Úextendr*   r,   r-   Úcopyr0   Ú
subprocessÚPopenr9   rg   ÚPIPEÚSTDOUTÚcommunicateÚdecodeÚ
cmd_outerrÚUnicodeDecodeErrorÚ
returncodeÚcmd_returncoder8   r   r
   )rK   rp   ÚpÚcommrT   s        r   ÚrunzCompilerRunner.runµ   sv  € Ý  ¤Ñ,Ô,ˆŒ
ð 	Œ
×Ò˜4 ¤Ð*Ñ+Ô+Ð+ÝŒj�oŠoÑÔˆØ”XˆˆE‰
õ Ô˜SŸXšX d§h¢h¡j¤jÑ1Ô1Ø#'Ø!%¤Ý#-¤?Ý$.¤OÝ$.Ô$5Ø!$ð&ñ &ô &ˆð �}Š}‰Œˆð	;Ø" 1œgŸnšn¨WÑ5Ô5ˆDŒOˆOøÝ!ð 	;ð 	;ð 	;Ø" 1œgŸnšn¨\Ñ:Ô:ˆDŒOˆOˆOð	;øøøàœlˆÔð Ô !Ò#Ð#ØI×PÒPØ—’˜Ÿš™œÑ$Ô$ d¤hµ°DÔ4GÑ0HÔ0HÈ$Ì/ñô ˆCõ ˜sÑ#Ô#Ð#àŒ Ô 3Ð3Ð3s   Ã C< Ã<*D)Ä(D))NTNr   NNNNNNNNN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   rU   Úclassmethodr7   rg   r   r   r    r   r   r      sé   € € € € € € ð$ð $ðL ÐÐÑØÐÐÑØ(ÐÐ(Ð(Ð(Ñ(ð "Ð!Ð!Ñ!ð &Ð%Ð%Ñ%ð <Ð;Ð;Ñ;ð 1Ð0Ð0Ñ0àUXØX\ØSWðI>ð I>ð I>ð I>ðV ð	Bð 	Bð 	Bñ „[ð	Bðð ð ð.4ð 4ð 4ð 4ð 4r    r   c                  ój   — e Zd ZdZdZ eg d¢¦  «        ZdZdj        dj        dj        dœZ	ddd	dœZ
d
S )ÚCCompilerRunnerÚCCÚCFLAGS))ÚgnuÚgcc)ÚintelÚicc)ÚllvmÚclang)Úc89Úc90Úc99Úc11ú-std={})r‹   r�   r�   rŠ   rŒ   rŽ   N©r€   r�   r‚   r   r   r   r   r   r8   r   r   r   r    r   r‡   r‡   Ö   s{   € € € € € àÐØ Ðà�Kð !ð !ð !ñ ô €Mð -€Ið ÔØÔØÔ!ðð €Lð ØØð$ð $Ð Ð Ð r    r‡   c                ó.   ‡ ‡— ddiŠ‰ ‰v rˆ ˆfd„}nd„ }|S )Núg++)zWimplicit-interfacec                ó,   •— ‰‰         D ]	}|| v r dS Œ
dS )NFTr   )r   ÚnwÚ
cmplr_nameÚnot_welcomes     €€r   Úfltrz_mk_flag_filter.<locals>.fltró   s1   ø€ Ø! *Ô-ð !ð !�Ø˜�7�7Ø ˜5˜5ð à�4r    c                ó   — dS )NTr   r   s    r   rœ   z_mk_flag_filter.<locals>.fltrù   s   € Ø�4r    r   )rš   rœ   r›   s   ` @r   Ú_mk_flag_filterrž   ð   sQ   øø€ ØÐ2Ð3€KØ�[Ð Ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	à€Kr    c                  ój   — e Zd ZdZdZ eg d¢¦  «        ZdZdj        dj        dj        dœZ	ddd	dœZ
d
S )ÚCppCompilerRunnerÚCXXÚCXXFLAGS))rŠ   r—   )rŒ   Úicpc)rŽ   úclang++)zc++98zc++0xr”   )r—   r£   r¤   rŠ   rŒ   rŽ   Nr•   r   r    r   r    r    þ   s{   € € € € € à ÐØ"Ðà�Kð !ð !ð !ñ ô €Mð #€Ið ÔØÔ ØÔ#ðð €Lð ØØð$ð $Ð Ð Ð r    r    c                  óL   — e Zd ZdZdZdZd„ d„ dœZ eddg¦  «        Zd	d
dœZ	dS )ÚFortranCompilerRunnerÚFCÚFFLAGS)NÚf77Úf95Úf2003Úf2008c                óD   — | €dn| dk    rdnd                      | ¦  «        S )Nz-std=gnur©   z-std=legacyr”   ©r8   r   s    r   r   zFortranCompilerRunner.<lambda>!  s+   € ¨A¨I˜j˜jÈAÐQVÊJÈJ¸=¸=Ð\e×\lÒ\lÐmnÑ\oÔ\o€ r    c                óD   — | €dnd                      | dd …         ¦  «        S )Nz
-stand f08z
-stand f{}éþÿÿÿr®   r   s    r   r   zFortranCompilerRunner.<lambda>"  s'   € ¨1¨9˜<˜<¸,×:MÒ:MÈaÐPRÐPSÐPSÌfÑ:UÔ:U€ r    )ÚgfortranÚifort)rŠ   r±   )rŒ   r²   rŠ   rŒ   N)
r€   r�   r‚   r   r   r   r   r   r   r   r   r    r   r¦   r¦     so   € € € € € àÐØ Ðà6€Ið pÐoØUÐUðð €Lð
  �KØØð!ñ ô €Mð Øð$ð $Ð Ð Ð r    r¦   )Ú
__future__r   Útypingr   r   Úcollectionsr   r,   rG   rs   r5   Úutilr   r	   r
   r   r‡   rž   r    r¦   r   r    r   ú<module>r·      sb  ðØ "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à #Ð #Ð #Ð #Ð #Ð #Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð
D4ð D4ð D4ð D4ð D4ñ D4ô D4ð D4ðNð ð ð ð �nñ ô ð ð4ð ð ðð ð ð ð ˜ñ ô ð ð6ð ð ð ð ˜Nñ ô ð ð ð r    