ÿWPCù  Ð&ÒZ»Æ«‡Ù#@WÏúÄ^ Pàö¤1rÅß4ò»á—ï­làçðª÷O‘èJ€(}qÌu¨·ÐÆXPœæâÚ¥¦ŠW¨(óh&PC­Tn×ܬHz^‹(à%·_ëñ K«ÊpÅy[Wç¬Zð]Y1ˆ›-4×–ƒ"°hFÙÌ#=RÆÅŸ>e}[W~2;Û¶È{3IªÀ5ñø&,‘‡–ƒXE2õ\õ¨ê%Q{¯P¸ϨØý~í"q½L(LŒÙ‘Œ”Ü›/q´Ûsá›WÐ=Z‹Nœa‹ØD`áý™~Q£¹éf¹ I8Õ‰¹ƒe.{ò×ã›(x«Ñ$ÎB‚C©;ê•dp!ø;.΃Ìó†'}?¼ù†I’ Ùׇ:áÂ0ÿ"Ú AÓ€×IÓ °n@µF @‚q½Ò®,¸J6ÇøgÍ*{–çÒp˜èÒE¥§Æ¿[ŸŸ  YÜ$#Ãù)`F£‚,¨ÊÏ0 ˜¬n¢Š«<1‰v÷L çèIƒð‰ç #úlADÕÔx…îz £ç3Ѻ)êoôùàBR:u4dU¨ œÐ>T‚[ZÙgñ¿„^W$ÿçZ‹xÉÊ MuAòŸfKC嘢pÃP‚©£Ï–jÊÄŠSHF#  %#–) 0o¿ . 0‹444j¿w@) 4i } Œ mŽ UL¥ ¥ ¥ ¥ ñ Okidata OL840 PostScriptOOL840PS.PRShhhhhhhhðe D­ò ŒÝ ƒ¯'ÝÔ€ô PôòòÔÝ  Ý›à€àà.(#àò òòòISO/IEC€JTC1/SC22/WG5-óóòò¢N1266£ó óóóˆÐ X Ðà€ŒŒ<(#àò òòòX3J3/97¢-137r1£óóó óˆÐ |$ ÐConditional€Compilation€Development€Bodyà€``:(#àFebruary€13,€1997ˆÐ  H ÐFortran-like€CoCo€Scribe€Notesà€7 7 7 (#àPage€Ú  Ú1Ú  Ú€of€2(G ó$¡¡ÑXXÑÑXXÑÔ€ô"öôòòÔÑ  ÑH(c3¯$§§Ý ƒ ó!ÝÑX°ÑÑX°ÑÔ€ô PôòòÔÑ  ÑÝ  ÝFortran-like CoCo Scribe Notes Í ' '  0 .    èéêëìHíîEïðñÊ=!r Baä’ƒ3|xñÿU‹ÿÀÀÀ2öàp`4New Century Schoolbook Ý ƒ ó!ÝÑX°ÑÑX°ÑÔ€ô PôòòÔÑ  ÑÝ  Ý›Ó<(° ‚XÝŒ-&Sp€­È‘X°œX<Ó¢Ö€ÿÿÖ£Ô% € Ôà@Q Q ìàò òòòFortran-like€CoCo€Scribe€Notesóóó óˆÐ ê ÐÌÌà Ý àFollowing€are€scribe€notes€from€the€technical€portion€of€the€discussion€on€the€Fortran-like€ConditionalÏCompilation€(CoCo)€facility.€€This€discussion€was€held€in€the€Courtyard€Room€at€the€Sunrise€Suites€Hotel,€4575ÏBoulder€Highway,€Las€Vegas,€NV€from€8:00€p.m.€until€9:35€p.m.€on€Wednesday,€February€12,€1997.ÌÌReferences:à0 7 àX3J3€/€97-111,€Part€3,€Conditional€CompilationД ª7(#7(# ÐÌÓZ(° ‚X¾ ‡-&Sp€­È‘X° ‚XÝŒ-&Sp€­È‘XZÓMichael€Henneckeà0 ¾ àWould€it€be€acceptable€for€a€Fortran„like€CoCo€to€have€macro€expansion?Ð, ¾ (#¾ (# ÐÌRichard€Bleikampà0 ¾ àA€Fortran„like€CoCo€needs€to€have€a€simplistic,€portable€macro€expansion€capability,€atÐ ˜®  Ðleast€one€tenth€as€powerful€as€what€is€in€cpp.Ð ¾ (#¾ (# ÐÌKurt€Hirchertà0 ¾ àWe€need€to€have€CoCo€interpolate€values€into€output€lines.€€The€Fortran„ñññÐ áý  Ðñññlike€CoCo€has€aÐ Ûñ  Ðvery€powerful€computational€capability€but€we€can't€use€it€in€anything.€€We€need€to€plugÏcomputed€values€into€generated€source€code€and€it€is€desirable€to€flag€the€lines€of€theÏinput€code€where€the€interpolated€values€are€used.Ð ¾ (#¾ (# ÐÌWalt€Brainerdà0 ¾ àCoCo€should€have€the€capability€to€get€information€off€of€the€command€line€and€out€ofÐ  ¶ Ðenvironmental€variables.€It€does€not€have€CHARACTER€variables€right€now.€€It€shouldÏhave€CHARACTER€variables.Ð ¾ (#¾ (# ÐÌJohn€Cuthbertsonà0 ¾ àMacro€expansion€is€like€statement€functions.€€I€find€it€strange€that€we€want€to€include€aÐ ¤º Ðfeature€which€is€equivalent€to€a€feature€which€is€obsolescent.Ð ¾ (#¾ (# ÐÌKeith€Biermanà0 ¾ àFormerly,€the€straw€votes€indicated€that€we€did€not€want€macro€expansion.€€A€while€back,Ð çý Ðwe€went€through€some€code€from€¢ISVs£€which€were€significant€commercial€applications.€ÏWe€found€out€that€almost€all€of€this€code€was€based€on€the€full€capabilities€of€the€cppÏmacro€facility.Ð ¾ (#¾ (# ÐÌCraig€Dedoà0 ¾ àI€would€like€the€Fortran„like€CoCo€to€have€the€Fortran€PRINT€and€STOP€statementsÐ ¬Â Ðinstead€of€the€current€ERROR€statement.Ð ¾ (#¾ (# ÐÌWolfgang€Walterà0 ¾ àWhy€did€David€use€an€ERROR€statement€instead€of€the€Fortran€PRINT€and€STOPÐ ï " Ðstatements?Ð ¾ (#¾ (# ÐÌCraig€Dedoà0 ¾ àDavid€wanted€the€absolute€minimalist€approach.Ð2#H%¾ (#¾ (# ÐÌQuestionà0 ¾ àWhat€does€a€macro€expansion€or€interpolation€capability€give€you€that€symbolic€constantsÐ ´$Ê' Ðdo€not?Ð ¾ (#¾ (# ÐÌKurt€Hirchertà0 ¾ àThis€capability€allows€you€to€change€the€names€of€procedures€in€the€source€code.€Ð÷& *¾ (#¾ (# ÐÌTony€Warnockà0 ¾ àI€want€the€absolute€minimum€tool€that€is€necessary€to€get€the€job€done.€€We€can€alwaysÐ y(!, Ðexpand€it€later.€€We€should€put€stuff€into€this€version€of€CoCo€knowing€that€it€is€going€toÏbe€added€to.€€We€should€make€it€a€really€simple€facility€that€can€get€the€job€done.Ð ¾ (#¾ (# ÐÌMichael€Henneckeà0 ¾ àI€would€use€many€different€macro€expansion€capabilities€beyond€the€simple€INTEGERÐ }+“$0 Ðand€LOGICAL€variables€which€are€supported€right€now.€€This€should€not€be€simple€textÏreplacement.€€Many€complex€codes€use€arbitrary€text.Ð ¾ (#¾ (# ÐÌKurt€Hirchertà0 ¾ àWe€considered€a€proposed€requirement€on€TYPE€aliasing.€€A€CoCo€interpolation€orÐ .—'4 Ðmacro€expansion€capability€could€be€used€to€achieve€TYPE€aliasing€in€a€different€way.Ð ¾ (#¾ (# ÐÐ 0)6 ТReva£€Sacksà0 ¾ àWhile€I€like€ñèñfull€ñèñmacro€expansion,€judging€by€the€help€desk€inquiries,€ourÐ U q Ðcustomers€are€not€using€ñéñfull€ñéñmacro€expansion€very€much.€€From€looking€atÏLarry€Rolison's€paper,€I€am€impressed€by€how€hard€ñêñfull€ñêñmacro€expansion€is.€ÏI€am€very€worried€about€the€time€delay€in€getting€CoCo€out€if€we€includeÏñëñfull€ñëñmacro€expansion.Ð ¾ (#¾ (# ÐÌÓZ(° ‚XÝŒ-&Sp€­È‘X° ‚X¾ ‡-&Sp€­È‘XZÓStraw€Voteà0 d àDo€we€want€macro€expansion€at€all€in€a€Fortran„like€CoCo?Ðÿ d (#d (# Ðà8 Ý à10à0 Ýû!Ýû!àYesà0d û! û!àà0‘ d û!d û!àà8¾ ‘ û!‘ û!à4à0ë ¾ Î ¾ Î àNoà0ë Î ë Î àà0EÎ Î àà8rEÎ EÎ à7à0Ÿr¡r¡àUndecidedÐÆâ Ÿ¡Ÿ¡ ÐÌStraw€Voteà0 d àAssuming€a€Fortran„like€CoCo€has€some€level€of€macro€expansion€capability,€whatÐ Tp  Ðlevel€of€macro€expansion€do€you€want?Ð d (#d (# Ðà8 Ý à1à0 Ýû!Ýû!àFullÐâþ  û! û! Ðà8 Ý à9à0 Ýû!Ýû!àLimitedЩŠû! û! Ðà8 Ý à8à0 Ýû!Ýû!àMinimalÐpŒ û! û! Ðà8 Ý à5à0 Ýû!Ýû!àUndecidedÐ7S û! û! ÐÓ^(° ‚X¾ ‡-&Sp€­È‘X° ‚XÝŒ-&Sp€­È‘X ^ÓÌTony€Warnockà0 ¾ àThere€are€lots€of€reasons€to€want€a€CHARACTER€data€type.€€Right€now,€IÐ Åá Ðhave€a€program€which€reads€a€parameter€file€and€writes€into€a€file.€€If€I€hadÏa€CHARACTER€data€type€in€a€pre„processor,€I€could€have€the€pre„processorÏread€the€parameter€file€and€insert€the€CHARACTER€data€directly€into€theÏsource€file.€€There€are€reasons€why€this€is€useful.€€For€example,€there€areÏdifferent€€names€for€system€calls€on€a€PC€than€on€a€Sun.€€On€differentÏsystems,€I€use€different€names€for€scratch€files.Ð ¾ (#¾ (# ÐÌMichael€Henneckeà0 ¾ àWith€the€way€that€CoCo€is€defined€right€now,€we€need€to€document€theÐ ý Ðmeaning€of€INTEGER€variables€in€comments.€€When€a€processor€hasÏtrouble€with€a€variable,€the€programmer€has€trouble€detecting€its€meaning.€ÏThe€current€examples€of€the€use€of€INTEGER€variables€are€very€clumsy.€€IÏdo€not€want€to€have€to€use€numbers€to€identify€the€different€machines€thatÏI€am€compiling€for.Ð ¾ (#¾ (# ÐÌWalt€Brainerdà0 ¾ àYou€could€use€various€LOGICAL€variables€to€specify€the€target€platforms.Ðn$Š&¾ (#¾ (# ÐÌMichael€Henneckeà0 ¾ àI€am€troubled€by€the€definition€of€the€scope€of€the€CoCo€variables.€€RightÐ ü%( Ðnow,€the€CoCo€document€defines€the€scope€to€be€the€program.€€ThisÏcontrasts€with€cpp€defining€the€scope€to€be€the€source€file.€€The€currentÏCoCo€definition€could€have€some€serious€undesirable€interactions.Ð ¾ (#¾ (# ÐÌÓZ(° ‚XÝŒ-&Sp€­È‘X° ‚X¾ ‡-&Sp€­È‘XZÓStraw€Vote:à0 d àà0‘ d (#d (#àDo€you€want€a€CHARACTER€data€type€in€a€Fortran„like€CoCo€facility?Ðß)û"-‘ (#‘ (# Ðà8 Ý à15à0 Ýû!Ýû!àYesà0d û! û!àà0‘ d û!d û!àà8¾ ‘ û!‘ û!à1à0ë ¾ Î ¾ Î àNoà0ë Î ë Î àà0EÎ Î àà8rEÎ EÎ à7à0Ÿr¡r¡àUndecidedЦ*Â#.Ÿ¡Ÿ¡ Ð