ChangeLog 125 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602
  1. 2019-08-31 Per Bothner <per@bothner.com>
  2. * lang/Lambda.java (rewriteFormals): Change type of #!rest argument
  3. to LList, instead of arglist, which means the argument is a mutable
  4. list if there are no keywords. This fixes GitLab issue #57
  5. "SRFI 1 circular-list problem".
  6. 2019-05-13 Per Bothner <per@bothner.com>
  7. * repl.java (printOption): Use a StringBuilder to reduce print calls.
  8. 2019-02-24 Per Bothner <per@bothner.com>
  9. * lang/SyntaxPattern.java (<init>): Check for null filename.
  10. 2019-01-18 Per Bothner <per@bothner.com>
  11. * repl.java: Update Copyright year printed by --version.
  12. 2018-12-31 Per Bothner <per@bothner.com>
  13. * Shell.java: Use new Compilation.maxErrors option.
  14. 2018-12-16 Per Bothner <per@bothner.com>
  15. * standard/IfFeature.java: Generalize "java-NN" core feature.
  16. Also make sure to intern strings.
  17. 2018-09-21 Per Bothner <per@bothner.com>
  18. * Shell.java (run): Handle new TtyInPort.MoreInputNeeded exception.
  19. 2018-09-07 Per Bothner <per@bothner.com>
  20. * standard/module_compile_options.java: Make more robust.
  21. 2018-07-31 Per Bothner <per@bothner.com>
  22. * standard/set_b.java (rewriteForm): Kludge to treat as re-definition.
  23. This fixes GitLab issue #44 "JVM crash on untrace from REPL (only)".
  24. 2018-04-30 Per Bothner <per@bothner.com>
  25. * langserver/KawaLanguageServer.java (definition): Improve.
  26. * langserver/KawaLanguageServer.java (doLint): Push/restore language.
  27. This works better for supporting multiple languages.
  28. 2018-04-13 Per Bothner <per@bothner.com>
  29. * lang/Translator.java (checkDefaultBinding):
  30. Better error recover after "unknown entity name".
  31. 2018-04-12 Per Bothner <per@bothner.com>
  32. * repl.java: Update copyright year for --version.
  33. 2018-02-18 Per Bothner <per@bothner.com>
  34. * standard/require.java (importDefinitions): Add check for ERROR_SEEN
  35. when deciding whether to re-parse. This fixes GitLab issue #37
  36. "No matching syntax-rule breaks the reader".
  37. 2018-01-21 Per Bothner <per@bothner.com>
  38. * DomTermBackend.java (run): Only set automatic-newline for output.
  39. 2017-12-04 Per Bothner <per@bothner.com>
  40. * lang/Translator.java (checkDefaultBinding):
  41. Use new method LispLanguage.decodeArrayType.
  42. 2017-09-24 Per Bothner <per@bothner.com>
  43. Partial fix GitLab issue#19 "(import (except (srfi 1) make-list)) fails"
  44. * ImportFromLibrary.java (ImportSetMapper.map): If 'except' specifies
  45. an unknown variable, emit warning rather than error.
  46. 2017-09-01 Per Bothner <per@bothner.com>
  47. * repl.java (browseManual): rap with #ifdef for httpserver.
  48. This is to avoid link problems when the HttpServer is missing.
  49. 2017-08-31 Per Bothner <per@bothner.com>
  50. * ImportFromLibrary.java: Add classname mangling.
  51. * require.java (map): Likewise.
  52. 2017-08-28 Per Bothner <per@bothner.com>
  53. * DomTermBackend.java (close): Add work-around for jline.
  54. 2017-08-08 Per Bothner <per@bothner.com>
  55. * lang/Lambda.java: More correct and simpler line number setting.
  56. Use the generic position-setting code rather than specific logic.
  57. (rewriteForm): Remove override - don't call setLine here.
  58. (rewrite): Don't call setLine here either.
  59. 2017-08-05 Per Bothner <per@bothner.com>
  60. * lang/BindDecls.java: Set SKIP_FOR_METHOD_PARAMETER one more place.
  61. This lets avoids having to create a field for this declaration.
  62. 2017-08-03 Per Bothner <per@bothner.com>
  63. * lang/BindDecls.java: Fixes for patterns nested in repeat patterns.
  64. 2017-08-02 Per Bothner <per@bothner.com>
  65. * lang/BindDecls.java: Handle splice operator in list pattern.
  66. 2017-07-26 Per Bothner <per@bothner.com>
  67. * lang/Lambda.java (rewriteFormals): Change #!rest and empty #!key.
  68. If we see '#!key #!rest' disallow keywords in rest parameter
  69. even if there are no actual keyword parameters.
  70. 2017-07-20 Per Bothner <per@bothner.com>
  71. * lang/Lambda.java: Fix some problems in handling #!if guards,
  72. * lang/BindDecls.java (parsePatternCar): Don't decrement min_args here,
  73. 2017-07-16 Per Bothner <per@bothner.com>
  74. * standard/ImportFromLibrary.java (libtaryExists): Improve.
  75. Use same code to search for a module as import does.
  76. This required some modest re-factoring and a new helper method.
  77. 2017-07-15 Per Bothner <per@bothner.com>
  78. * standard/ImportFromLibrary.java (libraryExists): Search module manager.
  79. This fixes GitLab issues #13 'locally defined library not found by
  80. cond-expand?'.
  81. * lang/Translator.java (reqrite): Follow aliased for scan-nesting.
  82. * standard/IfFeature.java (isProvide): Check for null name.
  83. 2017-06-08 Per Bothner <per@bothner.com>
  84. * lang/Macro.java: Update for new position-range model.
  85. * lang/Translator.java: Likewise.
  86. * standard/fluid_let.java: Likewise.
  87. * lang/SyntaxForms.java (rewriteCar): New method.
  88. * standard/try_catch.java (write): Argument is now a Pair.
  89. 2017-05-14 Per Bothner <per@bothner.com>
  90. * lang/Translator.java: Fix handling of nested ellipsis.
  91. Also optimize to not use redundant parameters.
  92. * standard/Scan.java (rewrite): Update accordingly.
  93. 2017-05-12 Per Bothner <per@bothner.com>
  94. * lang/BindDecl.java: Fix scan pattern (ellipsis) with type specifier.
  95. 2017-04-19 Per Bothner <per@bothner.com>
  96. * kawa/Record.java (makeRecordType): Update mangling to symbolic.
  97. Also set classfile-version.
  98. 2017-04-15 Per Bothner <per@bothner.com>
  99. * lang/Lambda.java: Fix hygiene handling.
  100. (class LambdaBindDecls): New class, extends BindDecls.
  101. * lang/TemplateScope.java: Commented-out possible-future hygiene idea.
  102. Use alias symbols instead of alias declarations.
  103. 2017-03-21 Per Bothner <per@bothner.com>
  104. * standard/expt.java: Moved to gnu.kawa.functions.Expt.
  105. 2017-03-20 Per Bothner <per@bothner.com>
  106. * lang/Translator.java (resolveModule): Pop DeclSetMapper
  107. when handing pendingImports.
  108. * standard/require.java: Pass DeclSetMapper to pushPendingImport.
  109. 2017-03-10 Per Bothner <per@bothner.com>
  110. * lang/SyntaxTemplate.java (get_var): Avoid exception on bad ellipsis.
  111. In the case of inconsistent ellipsis length, report an error
  112. rather than throwing a NullPointerException.
  113. 2017-03-01 Per Bothner <per@bothner.com>
  114. * standard/ImportFromLibrary.java: Fix computation of "current root".
  115. Use current library source path reather than current position,
  116. which might be in an included file.
  117. 2017-01-26 Per Bothner <per@bothner.com>
  118. * repl.java (browseManual): Default to index.html.
  119. 2017-02-24 Per Bothner <per@bothner.com>
  120. * DomTermBackend.java: Use org.domterm.DomHttpServer, rather
  121. than org.domterm.websocket.DomServer, as the latter requires
  122. the unmaintained (and slightly large) java_websocket library.
  123. 2017-02-07 Per Bothner <per@bothner.com>
  124. * DomTermBackend.java (setWindowSize): Fix inconsistent parameter order.
  125. 2017-01-21 Per Bothner <per@bothner.com>
  126. * lang/BindDecls.java (addCondition): Use special typeExp value
  127. for guards. Used by Declaration#isGuard.
  128. 2017-01-20 Per Bothner <per@bothner.com>
  129. * BindDecls.java: Handle literal patterns and #!if guards.
  130. * Lambda.java (parseFormals): Accept literals and #!if guards.
  131. 2017-01-10 Per Bothner <per@bothner.com>
  132. * repl.java: Move some logic for "-w" to ...
  133. * DomTermBackend.java: ... where we can use DomServer helper methods.
  134. 2017-01-06 Per Bothner <per@bothner.com>
  135. * standard/Scheme.java: Re-do just loadClass("kawa.lib.kawa.base").
  136. (nullEnvironment, r4Environment, r6Environment): Remove.
  137. (loadClass): New helper method.
  138. * standard/ImportFromLibrary.java (map): Allow compound
  139. symbols in only/except lists.
  140. * standard/define_member_alias.java: Remove broken Syntax.
  141. 2017-01-02 Per Bothner <per@bothner.com>
  142. * repl.java: Update copyright year.
  143. 2016-12-18 Per Bothner <per@bothner.com>
  144. * lang/Translator.java (resolveModule): Fix restore of line position.
  145. 2016-12-09 Per Bothner <per@bothner.com>
  146. * standard/Scheme.java: Update for classes from from gnu/kawa/slib.
  147. * standard/ImportFromLibrary.java: Update accordingly.
  148. * standard/require.java: Likewise.
  149. 2016-12-06 Per Bothner <per@bothner.com>
  150. * standard/requires.java (importDefinitions): Remove bogus semicolon.
  151. 2016-12-04 Per Bothner <per@bothner.com>
  152. * lang/Translator.java (rewrite): Convert literal string to IString.
  153. 2016-11-27 Per Bothner <per@bothner.com>
  154. * standard/let.java (rewrite): Add a null test - just in case.
  155. 2016-11-07 Per Bothner <per@bothner.com>
  156. * repl.java (browseManual): Update path to browse-kawa-manual.
  157. 2016-11-06 Per Bothner <per@bothner.com>
  158. * DomTermBackend.java (class WebSocketServer): New class.
  159. A light wrapper around DomServer.
  160. (startDomTermConsole): New method for starting a DomTerm-based REPL.
  161. * repl.java (startGuiConsole): Add a lot more flexibility and options.
  162. (browseManual): New method, used by new --browse-manual option.
  163. 2016-09-21 Per Bothner <per@bothner.com>
  164. * repl.java (checkDomTerm): Also setDomTerm on system error.
  165. * DomTermBackend.java: Likewise.
  166. 2016-09-09 Per Bothner <per@bothner.com>
  167. * ReplPaneOutPort.java: Fix handling of Pictures etc to
  168. use new GenericFormat framework.
  169. 2016-09-07 Per Bothner <per@bothner.com>
  170. * Shell.java (run): Improve interrupt (ctrl-c) handling.
  171. 2016-09-03 Per Bothner <per@bothner.com>
  172. * standard/IfFeature.java (coreFeatures): Update for new Java 9
  173. versioning scheme.
  174. 2016-08-12 Per Bothner <per@bothner.com>
  175. * Shell.java: Change handling of output-consumer so we never
  176. change the OutPort itself. Instead we get a new new PrintConsumer.
  177. 2016-07-22 Per Bothner <per@bothner.com>
  178. * ReplPane.java (PaintableView.paint): Fix translation.
  179. 2016-07-01 Per Bothner <per@bothner.com>
  180. * Shell.java (defaultPrompter): New static instance of Prompter.
  181. (run): Use it.
  182. * standard/Scheme.java: Redefine define-prompter.
  183. * standard/ImportFromLibrary.java (scanImportSet): Support 'class'
  184. import set form for the default package (i.e. empty prefix).
  185. 2016-06-26 Per Bothner <per@bothner.com>
  186. * repl.java: For --http-start, print message with port number.
  187. 2016-06-25 Per Bothner <per@bothner.com>
  188. * repl.java: After --http-start wait for console input and exit.
  189. 2016-06-18 Per Bothner <per@bothner.com>
  190. * DomTermBackend.java (reportEvent): Minor update.
  191. 2016-06-17 Per Bothner <per@bothner.com>
  192. Improve handling of Ctrl-C (interrupt) and Ctrl-D (end-of-file).
  193. * DomTermBackend.java (reportEvent): New method.
  194. (run): Write end-of-file sequence to DomTerm.
  195. * Shell.java (class SigIntHandler): New class, implements Runnable.
  196. (run): Set up SIGINT handlers.
  197. 2016-06-16 Per Bothner <per@bothner.com>
  198. Add support for (re-)loading stylesheet under DomTerm.
  199. * DomTermBackend.java (loadStyleSheet): New static method.
  200. * standard/Scheme.java: Define domterm-load-stylesheet.
  201. 2016-06-14 Per Bothner <per@bothner.com>
  202. Pass windows size events from DomTem to JLine.
  203. * DomTermBackend.java (setWindowSize): Override.
  204. * repl.java (startJfxConsole): Change to set window title.
  205. New option to run a REPL in a JavaFX DomTerm window.
  206. * DomTermBackend.java: New class, extends org.domterm.Backend.
  207. It wraps a Kawa REPL.
  208. * repl.java (startJfxConsole): Use reflection to start DomTerm
  209. in a JavaFX WebEngine.
  210. * Shell.java (run): Unwrap InvocationTargetException.
  211. 2016-06-11 Per Bothner <per@bothner.com>
  212. * standard/Scheme.scm: Update input-prompt1 and input-prompt2.
  213. 2016-06-02 Per Bothner <per@bothner.com>
  214. * Shell.java (run): Add hook for using JLine.
  215. Change setting of prompt and newline handling.
  216. (class Prompter): New static member class.
  217. * standard/Scheme.java: Define input-prompt1 and input-prompt2.
  218. 2016-05-27 Per Bothner <per@bothner.com>
  219. * lang/Translator.java (checkDefaultBinding): Handle "arrayRANK".
  220. * standard/Scheme.java: Change bindings of "array" to the type.
  221. (formatType): Handle GenArrayType.
  222. 2016-05-07 Per Bothner <per@bothner.com>
  223. * lang/Translator.java (getCompletions): Tweak parameter type.
  224. 2016-04-09 Per Bothner <per@bothner.com>
  225. * lang/Macro.java:
  226. A ThisExp used for macro context in 'init-run is now a class name,
  227. rather than an instance.
  228. This fixes Savannah bug #46728 "java.lang.VerifyError when class
  229. that inherits another class is the same name as the file on kawa 2.1".
  230. 2016-03-11 Jamison Hope <jrh@theptrgroup.com>
  231. * GuiConsole.java (init): On MacOS (at least) the call to setVisible
  232. must be done on the event thread.
  233. 2016-03-10 Per Bothner <per@bothner.com>
  234. * standard/Scheme.java: Add a bunch of array procedures.
  235. * lang/Translator.java: Update to use ArrayList instead of Vector.
  236. 2016-02-24 Per Bothner <per@bothner.com>
  237. * lang/Translator.java: Support context-senstive completion.
  238. (rewrite): Look for matching completions.
  239. (getCompletions): New method.
  240. 2016-02-23 Per Bothner <per@bothner.com>
  241. * lang/SyntaxRules.java (<init>): Put scope pop in a finally clause.
  242. * lang/Lambda.java (rewrite_lambda): Likewise.
  243. * standard/let.java (rewrite): Likewise.
  244. 2016-02-14 Per Bothner <per@bothner.com>
  245. * repl.java: Update copyright year printed by --version.
  246. 2016-02-02 Per Bothner <per@bothner.com>
  247. * standard/define_autoload.java: Update readNestedComment invocation.
  248. 2016-01-31 Per Bothner <per@bothner.com>
  249. * standard/Scheme.java (initScheme): Add 'format-array' procedure.
  250. 2016-01-30 Per Bothner <per@bothner.com>
  251. * Shell.java (printError): Add a flush.
  252. 2016-01-28 Per Bothner <per@bothner.com>
  253. * standard/ImportFromLibrary.java (scanImportSet): More precise
  254. error location if missing class.
  255. 2016-01-27 Per Bothner <per@bothner.com>
  256. * lang/Quote.java (append$V): Better handling if non-list argument.
  257. * lang/Translator.java (exp2Type): On error, return Type.errorType.
  258. 2016-01-26 Per Bothner <per@bothner.com>
  259. * Shell.java (run): We can simplify skipping to end-of-line,
  260. since parse does that.
  261. 2015-12-16 Per Bothner <per@bothner.com>
  262. * repl.java: Remove --domterm flag.
  263. Use CheckConsole.getDomTermVersionInfo instead,
  264. 2015-11-27 Per Bothner <per@bothner.com>
  265. * repl.java: Preliminary support for --domterm flag.
  266. 2015-10-24 Per Bothner <per@bothner.com>
  267. * standard/Scheme.java (getTypeMap): Add 'parameter'.
  268. 2015-10-13 Per Bothner <per@bothner.com>
  269. Clearer definition of "interactive mode". Better re-definition support.
  270. * lang/Eval.java (evalBody): Set module to be interactive
  271. if the environment is the interactive environment.
  272. * standard/require.java (importDefinition): Set module to be
  273. interactive if current module is interactive.
  274. 2015-10-12 Per Bothner <per@bothner.com>
  275. * standard/require.java (lookupModuleFromSourcePath): Don't resolve
  276. against baseName if latter is <string> or <eval>.
  277. * lang/Eval.java (evalForm$X): Use InPort.evalPathname.
  278. 2015-10-11 Per Bothner <per@bothner.com>
  279. * standard/ImportFromLibrary.java: Check for null sourcepath.
  280. * standard/Include.java: Likewise.
  281. 2015-10-10 Per Bothner <per@bothner.com>
  282. * Shell.java (checkCompiledZip): Use new Path#toFile.
  283. * standard/Include.java (process): Use new Path#isPlainFile.
  284. * standard/ImportFromLibrary.java (handleImport): Likewise.
  285. 2015-10-05 Per Bothner <per@bothner.com>
  286. * standard/require.java (importDefinitions): Remove unused local 'now'.
  287. * standard/ImportFromLibrary.java (handleImport):
  288. Don't add useless "./" prefix.
  289. Canonicalize path before calling findWithSourcePath.
  290. 2015-09-30 Per Bothner <per@bothner.com>
  291. * standard/ImportFromLibrary.java (SRFI97Map): Add SRFI 37
  292. and name it "args-fold", even though it is not supported by SRFI 97.
  293. * standard/ImportFromLibrary.java: Use demangleSymbolic.
  294. 2015-09-29 Per Bothner <per@bothner.com>
  295. * standard/ImportFromLibrary.java: Allow class name, written as
  296. symbol containing dots, to be used as a library-reference in import.
  297. * lib/DefineRecordType.scm: Use new syntax.
  298. * standard/define.java: Add support for define-variable.
  299. This allows define-variable to have a type-specifier.
  300. * standard/define_variable.java: Remove, no longer used.
  301. * Makefile.am: Update accordingly.
  302. * lib/prim_syntax.scm: Add definition of 'define-variable'.
  303. * standard/Scheme.java: Update binding for 'define-variable'.
  304. * lib/kawa/base.scm: Likewise. Also add 'define-constant'.
  305. 2015-09-28 Per Bothner <per@bothner.com>
  306. * standard/define_variable.java (scanForDefinitions): Use
  307. Transaltor.define. This means the Declaration can be exported.
  308. It also allows some simplification.
  309. * lang/Translator.java (define): New convenience overload.
  310. * standard/ImportFromLibrary.java: Use it.
  311. Rewrite macro bodies lazily to beter handle forward references.
  312. * standard/define_syntax.java (scanForm): Don't rewrite the macro rule
  313. eagerly, as that doesn't handle forward references properly. Instead,
  314. do the rewrite lazily if the macro is used *or* later, at rewrite time.
  315. (rewriteForm): Do write if not done yet. Handle make call here.
  316. * lang/Macro.java (rewriteIfNeeded): New method.
  317. (expand): Call rewriteIfNeeded.
  318. * lang/SyntaxTemplate.java (convert_template): Only noteAccess for
  319. top-level macros.
  320. * lang/Translator.java (resolveModule): Move processAccesses after
  321. rewrites.
  322. 2015-09-24 Per Bothner <per@bothner.com>
  323. * standard/Include.java: Prevent require/import in included file from
  324. causing the parse to be pending.
  325. * lang/Translator.java: Require pendingForm to be null in addition to
  326. PROLOG_state be STATE before handling the former.
  327. This avoids being triggered by the above change to Include.
  328. * standard/module_name.java: Error if too-late module-name.
  329. * standard/ImportFromLibrary.java (SRFI97Map): Add SRFI 35
  330. and name it "conditions", even though it is not supported by SRFI 97.
  331. 2015-09-20 Per Bothner <per@bothner.com>
  332. Allow 'synchronized and 'strictfp as access flags for methods.
  333. * lang/Lambda.java (rewriteAttrs): Use object.addAccessFlags.
  334. * standard/object.java (addAccessFlags): Make public.
  335. (matchAccess1): Recognize "synchronized" and "strictfp".
  336. 2015-09-17 Per Bothner <per@bothner.com>
  337. Fix bug in class name mangling; modularize.
  338. * standard/define_library.java: Use new Compilation.mangleClassName.
  339. * standard/ImportFromLibrary.java: Likewise.
  340. * standard/module_name.java: Likewise.
  341. * standard/require.java: Add missing mangling from module to class name.
  342. 2015-07-17 Per Bothner <per@bothner.com>
  343. * lang/BindDecls.java (setInitializer): Use LetExp.IS_BODY_SCOPE.
  344. * lang/Translator.java (rewrite_body): Set IS_BODY_SCOPE.
  345. 2015-07-15 Per Bothner <per@bothner.com>
  346. * standard/module_static.java: Complain if using 'init-run
  347. and --main was specified.
  348. 2015-07-12 Per Bothner <per@bothner.com>
  349. * lang/SyntaxPattern.java (translate): Treat Keywords as literals.
  350. 2015-06-24 Per Bothner <per@bothner.com>
  351. * standard/object.java: Simplify chaining of methods by
  352. using new pushChild and reverseChildList methods in LambdaExp.
  353. 2015-06-23 Per Bothner <per@bothner.com>
  354. * standard/Scheme.java (initScheme): Bind 'dynamic' type.
  355. 2015-06-21 Per Bothner <per@bothner.com>
  356. * lang/Translator.java (defined): Overload.
  357. * standard/define.java (scanForm): Use new overload.
  358. * standard/ImportFromLibrary.java: Add cast to disambiguate.
  359. 2015-06-12 Per Bothner <per@bothner.com>
  360. * standard/Scheme.java (initScheme): Change binding of
  361. "$bracket-list$" to a macro.
  362. 2015-06-11 Per Bothner <per@bothner.com>
  363. * standard/Scheme.java (initScheme): Bind "sequence" and
  364. "constant-vetor".
  365. 2015-06-08 Per Bothner <per@bothner.com>
  366. * repl.java (processArgs): On "-e" flag, pass error port to Shell.run
  367. so warnings get written out.
  368. 2015-06-06 Per Bothner <per@bothner.com>
  369. * repl.java (setLanguage): New static method.
  370. (processArgs): Use it.
  371. 2015-05-20 Per Bothner <per@bothner.com>
  372. * lang/Lambda.java (rewriteBody): Emit warning if using deprecated
  373. colon-less return-type specifier.
  374. * lang/Lambda.java (rewriteBody): Only allow colon-less return-type
  375. specifier as a single symbol.
  376. 2015-05-16 Per Bothner <per@bothner.com>
  377. * lang/Translator.java (rewrite_pair): Fix bug in test for missing
  378. value after keyword. Make warning more helpful.
  379. 2015-05-13 Per Bothner <per@bothner.com>
  380. * standard/Scheme.java (initScheme): Added sinh, cosh, tanh,
  381. asinh, acosh, atanh.
  382. 2015-05-09 Per Bothner <per@bothner.com>
  383. * standard/Scheme.java (createReadTable): Only recognize 'l'
  384. exponent marker if in non-standard mode.
  385. 2015-05-09 Per Bothner <per@bothner.com>
  386. * standard/export.java (rewriteForm): Emit error; don't return null.
  387. * standard/ImportFromLibrary.java (rewriteForm): Likewise.
  388. 2015-04-25 Per Bothner <per@bothner.com>
  389. * repl.java (processArgs): Handle -D options by calling
  390. System.setProperty.
  391. 2015-04-24 Per Bothner <per@bothner.com>
  392. * lang/Translator.java (rewrite_pair): Remove support for
  393. 'equivalent-syntax' - it was only used for 'raise' - and ran into
  394. hygiene there. It is now easier to use a validate-apply property.
  395. 2015-04-22 Per Bothner <per@bothner.com>
  396. * repl.java: Re-write to support "--with-arg-count=N" option.
  397. (processArgs): Move argument-processing logic to new non-static method.
  398. Also handle processing of final named-module or repl default action.
  399. (processArgs): Old method creates instance and calls new method.
  400. (main): Simplify by calling new processArgs.
  401. (getArgs): new method to handle --with-arg-count processing.
  402. (<init>): New default constructor.
  403. (error): New convenience method.
  404. 2015-04-18 Per Bothner <per@bothner.com>
  405. Implement "scan" (ellipsis) patterns and context.
  406. * lang/BindDecls.java (parsePatternCar, parseBracketListPattern):
  407. Take extra scanNesting parameter.
  408. (parsePatternCar): Set scanNesting of declarations.
  409. (parseBracketListPattern): If we see ellipsis, increment scan-nesting.
  410. * lang/SyntaxTemplate.java (dots3Symbol): Redefine.
  411. * lang/Translator.java (rewrite_pair): Check for ellipsis.
  412. (rewrite): Check if referencing a scan declaration.
  413. (currentScanContext): New field.
  414. (getScanContext, setScanContext, pushScanContext, popScanContext):
  415. New methods.
  416. (class ScanContext): Helper class.
  417. * standard/Scan.java: New Syntax.
  418. * Makefile.am: Update accordingly.
  419. * standard/Scheme.java: Define 'scan' syntax.
  420. * lang/Lambda.java: Update parsePatternCar invocation.
  421. * standard/MatchDef.java: Likewise.
  422. * standard/let.java: Likewise.
  423. 2015-04-15 Per Bothner <per@bothner.com>
  424. * lang/Macro.java (expand): If transformer throws an exception,
  425. pass this to the SourceError.
  426. 2015-04-14 Per Bothner <per@bothner.com>
  427. * standard/ImportFromLibrary.java (scanImportSet): Implement
  428. 'class' clause for import, as an alternative to define-alias.
  429. (ImportSetMapper.map): Add 'rename' functionality to the 'only' clause.
  430. * standard/require.java (DeclSetMapper): Change parameter and return
  431. type of map method to be more general.
  432. * Shell.java (run): Call flush after checkErrors. This is needed
  433. now since checkError uses Appendable which doens't auto-flush.
  434. 2015-04-10 Per Bothner <per@bothner.com>
  435. * repl.java (main): Exit with -1 return code if
  436. Shell.runFileOrClass reports failure.
  437. * Shell.java (run): Assume interactive if input is TtyInPort.
  438. This should work better now that we use CheckConsole.
  439. (runFile): Check for and handle SyntaxException returned by run.
  440. (compileSource): Flush standard error after printing messages.
  441. 2015-04-04 Per Bothner <per@bothner.com>
  442. * standard/location.java (rewriteApply): Add missing null check.
  443. 2015-04-03 Per Bothner <per@bothner.com>
  444. * lang/Translator.java (rewrite): Convert literal TRUE and FALSE
  445. to literals with primitive boolean type.
  446. 2015-03-22 Per Bothner <per@bothner.com>
  447. * standard/location.java (makeLocationProc): More precise return type.
  448. 2014-12-19 Jamison Hope <jrh@theptrgroup.com>
  449. * standard/define.java (rewriteForm): Make sure BeginExp bexp2 is
  450. instantiated before attempting to add expressions to it. This avoids
  451. a NullPointerException in some define-procedure invocations.
  452. 2015-03-18 Per Bothner <per@bothner.com>
  453. * lang/Lambda.java (rewriteFormals): Set IS_REST_PARAMETER and
  454. IS_PARAMETER for old-fashioned dotted rest argument.
  455. 2015-02-26 Per Bothner <per@bothner.com>
  456. * standard/let.java (rewrite): Remove unused local variable - which
  457. could cause a NullPointerException after an error.
  458. 2015-02-19 Per Bothner <per@bothner.com>
  459. * standard/IfFeature.java (hasfeature): Also assume "in-servlet"
  460. is true if the current Compilation is generating servlets.
  461. 2015-02-17 Per Bothner <per@bothner.com>
  462. * standard/define_class.java (scanForDefinitions): Call
  463. new createFields method of ClassExp.
  464. 2015-02-16 Per Bothner <per@bothner.com>
  465. * standard/Scheme.java: Some cleanups in initialization.
  466. * standard/ImportFromLibrary.java (handleImport): When searching
  467. for a class catch NoClassDefFoundError in addition to Exception.
  468. 2015-02-13 Per Bothner <per@bothner.com>
  469. * standard/let.java (rewrite): Mark parameter 'tr' as final. Java 8
  470. recognizes it as "effectively final" but in Java 7 it must be explicit.
  471. 2015-02-12 Per Bothner <per@bothner.com>
  472. * standard/Scheme.java (r5rsInstance, r6rsInstance, r7rsInstance):
  473. Make final and initialize in static initializer.
  474. (getR5rsInstance, getR5rsInstance, getR5rsInstance): Simplify
  475. accordingly.
  476. This fixes Savannah bug #44230 "slot-ref not working in r7rs mode".
  477. * standard/Scheme.java: Also some code cleanup/simplification by
  478. moving some initialization out of a 'static {...}' block.
  479. 2015-02-11 Per Bothner <per@bothner.com>
  480. Implement support for patterns in 'let'.
  481. * lang/BindDecls.java: Make the methods non-static.
  482. (instance): New static fields.
  483. (allowShadowing, makeConstant): New fields to control variants.
  484. (define): New overridable method.
  485. * lang/Lambda.java (rewriteFormals): Use BindDecls.instance.
  486. * standard/MatchDef.java (scanDecls): Likewise.
  487. * standard/let.java: Rewrite to use BindDecls.
  488. * lang/Translator.java (renamedAliasCount): New helper method.
  489. 2015-02-09 Per Bothner <per@bothner.com>
  490. * lang/Lambda.java: Add support for future pattern-matching
  491. using standard lambda macro - currently disabled.
  492. Add warning for conflicting deprecated type specifier syntax.
  493. 2015-01-11 Per Bothner <per@bothner.com>
  494. * repl.java (processArgs): Add support for --console flag.
  495. Update --no-console to use CheckConsole class.
  496. (main): Likewise.
  497. * GuiConsole.java (main): Likewise.
  498. 2015-01-09 Andrea Bernardini <andrebask@gmail.com>
  499. * repl.java: Add --enable-anf and --debug-print-anf options.
  500. 2014-12-28 Per Bothner <per@bothner.com>
  501. * standard/Scheme.java (initScheme): Update class for 'receive'
  502. * standard/ImportFromLibrary.java (SRFI97Map): Map srfi-8 to
  503. an actual classname, rather than BUILTIN. Needed if environment
  504. is restricted, as in r7rs libraries.
  505. * standard/require.java (featureMap): Add 'srfi-8, 'receive,
  506. and 'srfi-26.
  507. 2014-12-22 Per Bothner <per@bothner.com>
  508. * lang/Lambda.java: Preliminary support for patterns, but only
  509. if handlePatterns flag is set.
  510. * standard/Scheme.java (mlambda): New constant static field.
  511. * lang/BindDecls.java: New helper class for parsing pattern.
  512. * standard/MatchDef.java: New class for (! ...) declaration syntax.
  513. * standard/Scheme.java (initScheme): Adding binding for '!'
  514. * Makefile.am :update accorinly.
  515. * standard/define.java (scanForm): Complain about define-private
  516. in interactive module.
  517. 2014-12-21 Per Bothner <per@bothner.com>
  518. * standard/ImportFromLibrary.java (handleImport): Avoid undesirable
  519. canonicalization when calculating currentSource by using new
  520. Compilation#getSourceAbsPath method.
  521. 2014-12-19 Per Bothner <per@bothner.com>
  522. * standard/ImportFromLibrary.java (handleImport): Derive current
  523. source name from ModuleInfo, not Compilation. Thus we get a null
  524. name for cases like <eval> or <string>.
  525. * lang/Eval.java (evalBody): Update pushNewModule call.
  526. 2014-12-16 Per Bothner <per@bothner.com>
  527. * standard/SchemeCompilation.java (applyFunction): Return null
  528. if func is a LambdaExp.
  529. * lang/Translator.java (applyFunction) Moved to Compilation.
  530. * standard/Scheme.java (formatType): Handle MultValuesType.
  531. 2014-12-12 Per Bothner <per@bothner.com>
  532. * standard/call_with_values.java: Moved to
  533. gnu/kawa/functions/CallWithValues.java.
  534. * standard/Scheme.java (initScheme): Update for 'call-with-values'.
  535. * Makefile.am: Update accordingly.
  536. 2014-12-08 Per Bothner <per@bothner.com>
  537. * standard/Scheme.java (initScheme): Add binding for '?'.
  538. 2014-12-03 Per Bothner <per@bothner.com>
  539. * lang/SyntaxTemplate.java (convert_template): Check for cycles
  540. could also trigger on harmless sharing. Fix that.
  541. 2014-12-02 Per Bothner <per@bothner.com>
  542. * standard/Include.java: Change search path default.
  543. 2014-12-01 Per Bothner <per@bothner.com>
  544. Share more code between import and require.
  545. Specifically, have require share import's source path search handling.
  546. * standard/ImportFromLibrary.java (scanImportSet): Split up/refactor.
  547. (handleImport): New method.
  548. Do check for an existing class regardless.
  549. * standard/require.java (scanForDefinitions): Call handleImport,
  550. rather than calling importDefinitions directly.
  551. 2014-11-30 Per Bothner <per@bothner.com>
  552. * standard/ImportFromLibrary.java (scanImportSet): Search for a
  553. known class in the ModuleManager before looking for source file.
  554. Don't use the canonical path of the current file.
  555. 2014-11-28 Per Bothner <per@bothner.com>
  556. * lang/SyntaxTemplate.java (convert_template): Before checking for a
  557. symbol and calling noteAccess, do namespaceResolve to handle
  558. symbols containing colons.
  559. * lang/Translator.java (namespaceResolve): Call namespaceResolve
  560. on prefix, in case there are multiplecolons. If the result is not a
  561. symbol, don't continue.
  562. 2014-11-26 Per Bothner <per@bothner.com>
  563. * lang/Translator.java (rewrite): Provide default binding to $lookup$.
  564. * standard/Scheme.java (initScheme): Don't need to bind $lookup$.
  565. 2014-11-24 Per Bothner <per@bothner.com>
  566. * standard/Include.java: Re-implement to use a settable search path.
  567. (process): Re-do search algorithm.
  568. (getIncludeSearchPath, getSearchPath): New methods.
  569. * standard/ImportFromLibrary.java (getImportSearchPath): Rewrite
  570. to use Include.getSearchPath.
  571. * standard/define_library.java: Update accordingly.
  572. * standard/ImportFromLibrary.java (SRFI97Map): Map srfi-26 to
  573. an actual classname, rather than BUILTIN. Needed if environment
  574. is restricted, as in r7rs libraries.
  575. Resolve colon names even if quasiquote isn't in scope.
  576. * standard/export.java (scanForDefinitions): Call namespaceResolve
  577. as needed.
  578. * lang/Translator.java (rewrite_car_for_lookup): New method.
  579. (namespaceResolve, scanForm): Use rewrite_car_for_lookup.
  580. * lang/Quote.java (expand_pair): Likewise.
  581. * standard/export.java (export): Fix setting name.
  582. 2014-11-23 Per Bothner <per@bothner.com>
  583. * standard/Scheme.java (initScheme): Remove '%define-syntax'.
  584. 2014-11-22 Per Bothner <per@bothner.com>
  585. * standard/ImportFromLibrary.java (searchPath): Make public.
  586. 2014-11-20 Per Bothner <per@bothner.com>
  587. * standard/location.java (rewriteApply): If creating a
  588. StaticFieldLocation, make sure to mangle the field name if needed.
  589. 2014-11-19 Per Bothner <per@bothner.com>
  590. * standard/ImportFromLibrary.java (checkSrfi): Fix checking
  591. of optional name component.
  592. * standard/ImportFromLibrary.java (scanImportSet): If asking for a
  593. SRFI, we normally don't want to match a source file.
  594. 2014-11-17 Jamison Hope <jrh@theptrgroup.com>
  595. * standard/expt.java (expt): Coerce arguments to Numeric and
  596. support Quaternions.
  597. * standard/require.java (featureMap): Add 'quaternions.
  598. 2014-11-16 Per Bothner <per@bothner.com>
  599. * standard/require.java (importDefinitions): Handle context
  600. references lazily - i.e. only if needed.
  601. * standard/define_library.java (createModulePass): Update subModuleMap.
  602. Check for duplicate library name.requi
  603. * standard/require.java (importDefinitions): Check if imported
  604. source file actually defines the required module.
  605. * standard/ImportFromLibrary.java (scanImporSet): Tweak error message.
  606. 2014-11-14 Per Bothner <per@bothner.com>
  607. * standard/ImportFromLibrary.java (scanImportSet): Major changes to
  608. support searching for a source file containing the library.
  609. (checkSrfi): No error if unknown or unimplemented srfi.
  610. Instead see if we can find it through regular search.
  611. (getImportSearchPath): New method.
  612. * standard/require.java (importDefinitions): Error if source file
  613. defines a class different from what import/require asked for.
  614. 2014-11-12 Per Bothner <per@bothner.com>
  615. * standard/module_name.java (scanForm): Never declare a variable
  616. named with the module name - the latter is in a different namespace.
  617. * lang/Translator.java (checkDefaultBinding): Also check in
  618. ModuleManager for class being currently compiled.
  619. 2014-11-02 Per Bothner <per@bothner.com>
  620. * standard/ImportFromLibrary.java (checkSrfi): Allow r7rs
  621. syntax (import (srfi NNN [NAME])) without colon before NNN.
  622. 2014-10-29 Per Bothner <per@bothner.com>
  623. * repl.java (noConsole): Move field to InPort.java.
  624. (shouldUseGuiConsole): Remove method - use InPort.haveConsole instead.
  625. 2014-10-27 Per Bothner <per@bothner.com>
  626. * standard/load.java: Fix super-class to be Procedure1or2.
  627. * Shell.java (runFile): Set and restore current environment.
  628. 2014-10-24 Per Bothner <per@bothner.com>
  629. * standard/Scheme.java (initScheme): Fix typo 'make-promise!' ->
  630. 'make-promise'.
  631. 2014-10-22 Per Bothner <per@bothner.com>
  632. * standard/IfFeature.java (coreFeatures): Rename 'macos to 'macosx.
  633. Add some bsd support. Don't also define i386 if x86_64.
  634. * standard/Scheme.java (initScheme): Added bindings for 'else 'unquote
  635. 'unquote-splicing '... '=> '_.
  636. 2014-10-17 Per Bothner <per@bothner.com>
  637. * standard/Scheme.java (initScheme): Added promise? and environment.
  638. Updated some other bindings.
  639. 2014-10-14 Per Bothner <per@bothner.com>
  640. * standard/IfFeature.java (coreFeatures): Add a bunch of features,
  641. oncluding r7rs and system properties.
  642. * standard/Scheme.java (initScheme): Add bindings for 'make-promise'
  643. and 'delay-force' (as a synonym for 'lazy').
  644. * standard/IfFeature.java: Now extends syntax. Re-write to
  645. handle cond-expand here (rather than in Scheme code).
  646. Now also implements the library clause.
  647. * standard/Scheme.java (initScheme): Update 'cond-expand' binding.
  648. * standard/define_library.java: Support cond-expand clause.
  649. * standard/ImportFromLibrary.java (checkSrfi): New method.
  650. (scanImportset): Use it.
  651. (libraryExists): New method, for cond-expand 'library' test.
  652. 2014-10-13 Per Bothner <per@bothner.com>
  653. Add support for r7rs 'define-library'.
  654. * standard/define_library.java: New class, extends Syntax.
  655. * Makefile.am: Update accordingly.
  656. * standard/Scheme.java (initScheme): Bind 'define-library'.
  657. * lang/Translator.java (errorIfNonEmpty): New convenience method.
  658. (scanForm): Special handling of define_library#define_library_scan.
  659. * standard/module_name.java (listToModuleName): New method.
  660. (scanForm): Scan form.
  661. * standard/export.java: Complain if used after a define-library form.
  662. * lang/Translator.java (rewrite_apir): Tweak/simplify error message.
  663. * lang/Translator.java (getGlobalEnvironment): Is now an override.
  664. (<init>): New constructor that takes argument for env field.
  665. * standard/SchemeCompilation.java (<init>): New constructor
  666. that takes argument for env field.
  667. 2014-10-12 Per Bothner <per@bothner.com>
  668. * standard/Scheme.java (initScheme): Remove '%let' and '%define'.
  669. 2014-10-09 Per Bothner <per@bothner.com>
  670. * standard/require.java (importDefinitions): For mapping imported
  671. names, use a DeclSetMapper rather than a Procedure. The latter
  672. only re-maps a single binding at a time, which makes diagnosing
  673. errors difficult.
  674. (DeclSetMapper): New member interface.
  675. * standard/ImportFromLibrary.java: Re-implement to handle the
  676. entire import syntax (rather than handing renaming in Scheme).
  677. We add better error-checking. This fixes Savannah bug #43341
  678. "Import should warn about non existing bindings".
  679. * standard/Scheme.java (initDecls): Update for 'import'.
  680. 2014-10-08 Per Bothner <per@bothner.com>
  681. * standard/require.java (importDefinitions): Re-organize the code.
  682. Add a pre-pass over the exported module; this will (soon) allow
  683. doing name-mapping over the names as a set. It also allows us
  684. to remove the post-processor loop to set context decls.
  685. 2014-10-01 Per Bothner <per@bothner.com>
  686. * standard/location.java (rewriteApply): New helper method
  687. for handling two special cases to take locations of ApplyExp.
  688. Specifically for static fields and static member classes.
  689. (rewrite): Use rewriteApply.
  690. * standard/define_alias.java (rewriteForm): Minor tweak - note
  691. that location.rewrite can now return a QuoteExp.
  692. 2014-09-30 Per Bothner <per@bothner.com>
  693. * standard/Scheme.java (initScheme): Remove '%cond-expand'.
  694. 2014-09-28 Per Bothner <per@bothner.com>
  695. * standard/Include.java: New Syntax class for handling 'include'.
  696. * Makefile.am: Update accordingly.
  697. * standard/Scheme.java (initScheme): Add 'include-ci' and update
  698. 'include' and 'include-relative'.
  699. 2014-09-26 Per Bothner <per@bothner.com>
  700. * standard/Scheme.java (initScheme): 'define-record-type' was
  701. moved from gnu.kawa.slib to kawa.lib.
  702. Added 'bytevector?' as an explicit (not implicit) definition.
  703. 2014-09-22 Per Bothner <per@bothner.com>
  704. * standard/Scheme.java (initScheme): Define 'define-values'.
  705. 2014-09-20 Per Bothner <per@bothner.com>
  706. Remember current scope when we create a TemplateScope. Just remembering
  707. the macro scope may be insufficient for generated macros.
  708. * lang/SyntaxTemplate.java (savedScope): New field.
  709. (execute): Don't take TemplateScope parameter, instead calculate it.
  710. * lang/SyntaxRules.java (<init>)update call to execute.
  711. * lang/TemplateScope.java (make): Take savedScope parameter.
  712. * standard/syntax.java: Update to disambiguate execute method.
  713. 2014-09-15 Per Bothner <per@bothner.com>
  714. * Shell.java (run): If parse or rewrite error, pop the new
  715. ModuleExp to clear semi-processed declarations.
  716. * lang/SyntaxPattern.java (printSyntaxPatternMatch): New static flag.
  717. (match): Maybe print log information.
  718. * repl.java: Maybe set printSyntaxPatternMatch.
  719. * lang/SyntaxPattern.java (fileLine): New field.
  720. (<init>): Set fileLine.
  721. (writeExternal, readExternal): Write/set fileLine.
  722. (match): Use fileLine.
  723. (toString): New method.
  724. * lang/Pattern.java (print): New default method.
  725. 2014-09-07 Per Bothner <per@bothner.com>
  726. * lang/Translator.java (pushPositionOf): Generalize to SourceLocator.
  727. * standard/Scheme.java (initScheme): Renamed '5syntax-error'
  728. to 'syntax-error', which is in r7rs.
  729. * standard/syntax_error.java: updated.
  730. 2014-09-05 Per Bothner <per@bothner.com>
  731. * lang/SyntaxTemplate.java (convert_template): Convert literal
  732. PairWithPosition to plain Pair, to allow setting line number in
  733. Macro.expand.
  734. * lang/SyntaxTemplate.java (convert_template) Don't wrap constands
  735. with a SyntaxForm.
  736. * standard/syntax_error.java (rewrite): Tweak formatting to be
  737. more take the Scheme error routine.
  738. 2014-09-04 Per Bothner <per@bothner.com>
  739. * standard/Scheme.java (initScheme): Rename syntax-error to
  740. report-syntax-error.
  741. 2014-09-03 Per Bothner <per@bothner.com>
  742. * lang/SyntaxPattern.java: Instead using literal_identifiers[0]
  743. for a "name" for output, use getSymbol(). Set the symbol from the
  744. currentMacroDefinition, rather than from the head of a syntax-pattern
  745. - which is often "_" and thus useless anyway.
  746. 2014-09-02 Per Bothner <per@bothner.com>
  747. * lang/SyntaxPattern.java: Add support for underscore meaning
  748. "match and ignore anything".
  749. * lang/SyntaxRules.java (<init>): Don't set literal_identifiers[0] -
  750. there is no need and it confuses things.
  751. Add R7RS functionality for ellipsis in syntax-rules.
  752. * standard/syntax_rules.java (rewriteForm): Check for alternative
  753. symbol to use in place of '... .
  754. * lang/SyntaxPattern.java (<init>, translate): Take ellipsis argument.
  755. (literalIdentifierEq): Handle SyntaxForm as a convenience.
  756. * lang/SyntaxRules.java (<init>): Take ellipsis argument.
  757. * lang/SyntaxTemplate.java (dots3): Remove field.
  758. (<init>, convert_template): Take ellipsis argument.
  759. (convert_template): Generalize to user-specified ellipsis symbol.
  760. Generalize handling of (... ...) to handle the r7rs extension (... XXX).
  761. * lang/SyntaxRule.java: Update accordingly.
  762. * standard/syntax.java: Update accordingly.
  763. 2014-08-31 Per Bothner <per@bothner.com>
  764. * lang/SyntaxPattern.java: Use StringBuilder instead of StringBuffer.
  765. * lang/SyntaxRules.java: Likewise.
  766. * lang/SyntaxTemplate.java: Likewise.
  767. * lang/SyntaxForms.java (fromDatumIfNeeded): Handle null template.
  768. * lang/SyntaxPattern.java (getLiteralsList): Simplify and make
  769. more general by using fromDatumIfNeeded.
  770. 2014-08-21 Per Bothner <per@bothner.com>
  771. * standard/Scheme.java (initScheme): 'parameterize' moved.
  772. 2014-08-13 Andrea Bernardini <andrebask@gmail.com>
  773. * standard/Scheme.java (initScheme): Add case.
  774. 202014-08-14 Per Bothner <per@bothner.com>
  775. * standard/Scheme.java (initScheme): Add string-replace!.
  776. 2014-08-11 Per Bothner <per@bothner.com>
  777. * standard/Scheme.java (initScheme): Add string-append!.
  778. 2014-08-04 Per Bothner <per@bothner.com>
  779. * standard/Scheme.java (initScheme): Add string-map.
  780. * standard/Scheme.java (initScheme): Update string-for-each location
  781. and add srfi-13-string-for-each.
  782. 2014-07-22 Per Bothner <per@bothner.com>
  783. * standard/Scheme.java (initScheme): Remove string-append/shared.
  784. 2014-07-20 Per Bothner <per@bothner.com>
  785. * standard/location (getMakeProcLocProc): New method.
  786. (rewrite): Use it.
  787. 2014-07-20 Per Bothner <per@bothner.com>
  788. * standard/ImportFromLibrary.java: Fix typo in error message.
  789. 2014-07-17 Per Bothner <per@bothner.com>
  790. * lang/Lambda.java (rewriteBody): After evaluating a parameter's type,
  791. update the Declaration's type.
  792. 2014-07-13 Per Bothner <per@bothner.com>
  793. * standard/module_name.scm: Allow R6RS/R7RS-style library name as list.
  794. 2014-07-09 Per Bothner <per@bothner.com>
  795. * standard/Scheme.java (formatType): Don't enter impementation type
  796. into type->name map. That could overwrite an existing entry,
  797. and doesn't seem right anyway.
  798. 2014-07-05 Per Bothner <per@bothner.com>
  799. * lang/Quote.java (expand): Re-do handling of quasiquoted vectors
  800. with splicing - use new MakeSplice functionality.
  801. 2014-07-03 Per Bothner <per@bothner.com>
  802. * standard/Scheme.java (initScheme): Define R7RS functions floor/,
  803. floor-quotient, floor-remainder, truncate/, truncate-quotient,
  804. and truncate-remainder.
  805. 2014-07-02 Per Bothner <per@bothner.com>
  806. * standard/Scheme.java (initScheme): Define 'exact-integer?'.
  807. * standard/Scheme.java: Update read-char and peek-char.
  808. * standard/SchemeCompilation.java (checkDefaultBinding): For now at
  809. least doesn't allow "re-interpret primitive type" conversions using
  810. '->TYPE', only using 'as'.
  811. only explicit 'as' but not '->TYPE'
  812. * standard/readchar.java: Removed - no longer used.
  813. * Makefile.am: Update accordingly.
  814. 2014-06-30 Per Bothner <per@bothner.com>
  815. * SourceType.java: New annotation type.
  816. * SourceMethodType.java: New annotation type.
  817. * Makefile.am: Update accordingly.
  818. 2014-06-28 Per Bothner <per@bothner.com>
  819. * lang/Syntax.java(rewriteForm(Object,Translator)):
  820. Remove no-longer-unused method.
  821. * lang/Macro.java: Likewise.
  822. (rewriteForm(Pair,Translator)): Simple inlining. It's a slight
  823. optimization; more valuable is it makes stack traces less verbose.
  824. 2014-06-07 Per Bothner <per@bothner.com>
  825. Allow associating a syntax transformer with a procedure.
  826. * lang/Lambda.java (rewriteAttrs): Allow unknown properties.
  827. * lang/Macro.java (<init>): Don't quote expander if it's an Expression.
  828. * lang/Translator.java (rewrite_pair): Check for 'equivalent-syntax'
  829. property of Procedure.
  830. 2014-06-04 Per Bothner <per@bothner.com>
  831. * standard/define.java: Now also used to implement define-procedure.
  832. This allows some tweaks and optimizations.
  833. 2014-05-24 Per Bothner <per@bothner.com>
  834. * standard/require.java: Remove unneeded imports.
  835. 2014-05-14 Per Bothner <per@bothner.com>
  836. * repl.java (processArgs): Handle --main explicitly by setting
  837. the PARSE_EMIT_MAIN flag. This way avoids unintentially setting the
  838. flag for required modules.
  839. 2014-05-13 Per Bothner <per@bothner.com>
  840. * standard/require.java (scanForDefinitions): Better error message
  841. if a symbol does not match an existing class.
  842. * standard/require.java (lookupModuleFromSourcePath): Don't resolve
  843. if the base filename is the default InPort.
  844. 2014-05-12 Per Bothner <per@bothner.com>
  845. * standard/Scheme.java (createReadTable): Bind '@' to handling splice,
  846. but only if not FOLLOW_R5R/FOLLOW_R6RS/FOLLOW_R7R.
  847. 2014-05-09 Per Bothner <per@bothner.com>
  848. * standard/IfFeature.java (coreFeatures): Add java-8 and java-9.
  849. Use System.getProperty to set java-6 thtough java-9.
  850. 2014-05-06 Per Bothner <per@bothner.com>
  851. * lang/Lambda.java (isAnnotationSymbol): Check for ($splice$ ...).
  852. * lang/Translator.java (rewritePair): Handle splice forms,
  853. as well as annotation forms.
  854. (appltFunction): New method.
  855. (makeApply): Remove method - use applyFunctio instead.
  856. * standard/object.java (rewriteClassDef): Expliciylhy skip annotations.
  857. Needed now that annotations are read as (($splice$ ATYPE) ...).
  858. * standard/SchemeCompilation.java (applyFunction): New override,
  859. (makeApply): Remove method.
  860. 2014-04-28 Per Bothner <per@bothner.com>
  861. * lang/Translator.java (rewrite_pair): Remove some unused code
  862. left-over from 2006-06-16 (see ../ChangeLog) for handling
  863. xml namespaces.
  864. 2014-04-27 Per Bothner <per@bothner.com>
  865. * lang/SyntaxForms.java (makeForm): Don't need to wrap
  866. self-evaluating values. Needed for Keywords due to change below.
  867. * lang/Translator.java (rewrite_pair, rewrite): Add warnings
  868. if keywords are misused.
  869. * standard/Scheme.java (keywordsAreSelfEvaluating): New override.
  870. 2014-04-23 Per Bothner <per@bothner.com>
  871. * standard/define.java (rewriteForm): If checking that make-private
  872. is top-level, is Declarations's context, rather than current scope.
  873. The latter may not work if we're in a macro template scope.
  874. 2014-03-17 Per Bothner <per@bothner.com>
  875. * standard/Scheme.java (initScheme): Define ">>" constructor.
  876. 2014-03-08 Per Bothner <per@bothner.com>
  877. * standard/Scheme.java (initScheme): Define ">" constructor.
  878. 2014-02-23 Per Bothner <per@bothner.com>
  879. * Shell.java (openFile): New method, use openHeuristicFile.
  880. (runFile): Use openFile.
  881. * repl.java: Likewise.
  882. 2014-02-18 Jamison Hope <jrh@theptrgroup.com>
  883. * standard/Scheme.java (initScheme): Remove 'logbit?', since it
  884. just an alias for 'bitwise-bit-set?' and happens to conflict with
  885. the semantics of SRFI-60 'logbit?'.
  886. * standard/ImportFromLibrary.java (SRFI97Map): Update for SRFI-60.
  887. * standard/require.java (featureMap): Likewise.
  888. 2014-02-17 Per Bothner <per@bothner.com>
  889. * standard/define.java: Implement 'define-early-constant'.
  890. * standard/Scheme.java (initScheme): Define 'define-early-constant'.
  891. 2014-02-17 Jamison Hope <jrh@theptrgroup.com>
  892. * standard/ImportFromLibrary.java (SRFI97Map): Update for SRFI-87
  893. and SRFI-98 which are now builtins.
  894. 2014-02-17 Per Bothner <per@bothner.com>
  895. * Shell.java: Add ExitCalled support.
  896. * repl.java: Likewise.
  897. * standard/Scheme.java (initScheme): Define 'emergency-exit'.
  898. 2014-02-16 Per Bothner <per@bothner.com>
  899. * lang/Translator.java: Make sure Error is uncaught or re-thrown.
  900. * standard/Scheme.java: Likewise.
  901. * standard/constant_fold.java: Likewise.
  902. * standard/load.java: Likewise.
  903. * standard/require.java: Likewise.
  904. * lang/AutoloadProcedure.java: Simplify as we now require Java5.
  905. 2014-02-12 Per Bothner <per@bothner.com>
  906. * standard/Scheme.java (initScheme): Define 'pipe-process'.
  907. 2014-02-06 Per Bothner <per@bothner.com>
  908. * standard/Scheme.java (initScheme): Define 'current-path'.
  909. 2014-01-02 Per Bothner <per@bothner.com>
  910. * repl.java: Update year to 2014.
  911. * standard/Scheme.java (initScheme): Remove 'simple-guard',
  912. since re-implemented 'guard' is (almost) equally simple.
  913. 2013-12-22 Per Bothner <per@bothner.com>
  914. * standard/Scheme.java (initScheme): Add 'run-process',
  915. 'process-exit-wait', 'process-exit-ok?', '&cmd', '&`', '&sh'.
  916. 2013-12-21 Per Bothner <per@bothner.com>
  917. * standard/Scheme.java (initScheme): New procedures 'path-bytes'
  918. and 'path-data'. New named quasi-literals 'PD' and '<'.
  919. 2013-12-20 Per Bothner <per@bothner.com>
  920. * lang/TemplateScope.java: Make writeExternal/readExternal work
  921. for a TemplateScope from a ModuleLevel macro - the important case
  922. for compiling macro-generating macros.
  923. * lang/SyntaxTemplate.java (convert_template): Check for cycle
  924. before (rather than after) dereferencing SyntaxForms. This fixes
  925. Savannah bug #40869 "self-referential (cyclic) syntax template".
  926. * lang/SyntaxTemplate.java (seen): Unconditionally
  927. assume availability of java.util.IdentityHashMap.
  928. 2013-12-15 John Tobey <jtobey@john-edwin-tobey.org>
  929. * lang/SyntaxForms.java (class PairWithPositionSyntaxForm):
  930. Make public.
  931. 2013-12-13 Per Bothner <per@bothner.com>
  932. * standard/Scheme.java (initScheme): Add definitions for r6rs/r7rs
  933. exception handling.
  934. 2013-12-09 Per Bothner <per@bothner.com>
  935. * lang/SyntaxForms.java (class PairWithPositionSyntaxForm):
  936. Implement Externalizable.
  937. 2013-12-08 Per Bothner <per@bothner.com>
  938. * lang/SyntaxForms.java (class SimpleSyntaxForm):
  939. Implement Externalizable.
  940. (class PairSyntaxForm): Likewise.
  941. This helps fix Svannah bug #40822 "Exporting macro-defined macro:
  942. Internal error".
  943. 2013-12-05 Per Bothner <per@bothner.com>
  944. * lang/SyntaxTemplate.java: Update support for '(... ...)' - which
  945. was added 2005-06-26 - in that we no longer use java.lang.String
  946. for Scheme symbols.
  947. This fixes Savannah bug #40814 "R6RS/R7RS ellipsis escapes".
  948. 2013-12-01 Per Bothner <per@bothner.com>
  949. * lang/NamedException.java: Some re-working to make it more robust
  950. and correct for both Guile-style catch/throw and R7RS error.
  951. (toString): Do formatting here (rather than in error function).
  952. * standard/Scheme.java (initScheme): Added error-object?,
  953. error-object-message, error-object-irritants, read-error?,
  954. and file-error?. Updated catch, throw, error.
  955. * standard/Scheme.java (initScheme): Add 'letrec*'.
  956. 2013-11-30 Per Bothner <per@bothner.com>
  957. * lang/Translator.java (define): When alias is needed, do a
  958. pushRenamedAlias, so we can later pop it.
  959. (rewrite_body): Pop aliases. Needed in case of nested definitions
  960. with the same pattern variable inside a template.
  961. This fixes Savannah bug #40729 "NPE in inline-compiler
  962. for AppendValues".
  963. 2013-11-18 Per Bothner <per@bothner.com>
  964. * lang/Translator.java (define): When creating an alias, the
  965. generated name should be an uninterned symbol, not an uninterned
  966. String, since NameLookup#lookup uses equals when comparing names.
  967. * lang/Translator.java (define): We may need an alias if the
  968. current scope is not the scope for the definition.
  969. This fixes Savannah bug #40616 "Unhygienic syntax-rules".
  970. 2013-11-13 Per Bothner <per@bothner.com>
  971. * lang/Translator.java (resolveModule): Reset current line
  972. position, so we don't have "dangling" line numbers from a
  973. previous phase.
  974. 2013-11-12 Per Bothner <per@bothner.com>
  975. * lang/SyntaxTemplate.java (print_template_program): Update
  976. commented-out debugging helper.
  977. 2013-11-11 Per Bothner <per@bothner.com>
  978. * lang/Eval.java (evalBody): Even simpler, just remove the
  979. save/restore of the formStack. Not sure why it would be needed,
  980. since eval creates a fresh Translator and thus FormStack each time.
  981. 2013-11-11 Per Bothner <per@bothner.com>
  982. * lang/Eval.java (evalBody): Instead of setting the magic variable
  983. firstForm, just save and restore the formStack.
  984. * lang/Translator.java (firstForm): Remove field.
  985. (FormStack.pushAll): New method.
  986. 2013-11-10 Per Bothner <per@bothner.com>
  987. * lang/Translator.java (class FormStack): Use new class to
  988. implement formStack as linked list, rather than a java.util.Stack.
  989. Using a linked list allows storing positions using PairWithPosition.
  990. Moving lists back and forth actually works pretty well.
  991. (formStack): An instance of FormStack rather than Stack.
  992. (class ValuesFromLList): Helper class.
  993. (popForm): Use ValuesFromLList.
  994. (vectorReverse): Remove no-longer needed method.
  995. * lang/Syntax.java (scanForDefinitions): Remove forms parameter.
  996. * standard/begin.java: Have scanBody leave scanned forms
  997. in the formStack, rather than a list - which then needs to
  998. be pushed to the formStack. This fixes Savannah bug #40494
  999. "internal error on kawa -C bug.scm, 1.14 and head".
  1000. * lang/Eval.java: Update for new APIs.
  1001. * standard/ImportFromLibrary.java: Likewise.
  1002. * standard/define.java: Likewise.
  1003. * standard/define_alias.java: Likewise.
  1004. * standard/define_class.java: Likewise.
  1005. * standard/define_member_alias.java: Likewise.
  1006. * standard/define_syntax.java: Likewise.
  1007. * standard/define_unit.java: Likewise.
  1008. * standard/define_variable.java: Likewise.
  1009. * standard/export.java: Likewise.
  1010. * standard/module_compile_options.java: Likewise.
  1011. * standard/module_name.java: Likewise.
  1012. * standard/module_static.java: Likewise.
  1013. * standard/with_compile_options.java: Likewise.
  1014. * standard/define_autoload.java: Likewise.
  1015. (process): Remove forms parameters - use from tr parameter.
  1016. * standard/require.java: Update for new APIs.
  1017. (importDefinitions): The formsStack is now a FormStack object.
  1018. 2013-11-07 Per Bothner <per@bothner.com>
  1019. * lang/Lambda.java (rewriteBody): Fix handling ':: TYPESPEC' in
  1020. the general when it isn't a simple type - which also means
  1021. we catch typos.
  1022. 2013-10-23 Matthieu Vachon <matthieu.o.vachon@gmail.com>
  1023. * standard/define_alias.java: Fixed a small typo in static
  1024. initializer, the `define-private-alias` field should have
  1025. `makePrivate` set to true by default.
  1026. 2013-11-03 Per Bothner <per@bothner.com>
  1027. * lang/Translator.java (scanForm): Use new Values.FromArray class.
  1028. * standard/call_with_values.java (apply): Use new
  1029. Values#check_with method - especially a win if we can use Values2.
  1030. * standard/read_line.java (apply): Optimize to use Values2.
  1031. 2013-10-19 Per Bothner <per@bothner.com>
  1032. * standard/ImportFromLibrary.java (SRFI97Map): Add SRFI-101 entry.
  1033. * standard/require.java: Likewise.
  1034. 2013-10-07 Per Bothner <per@bothner.com>
  1035. * standard/export.java (scanForDefinitions): Handle renaming.
  1036. * lang/Translator.java (resolveModule): Call patchSymbolFromSet
  1037. as needed for renamed exported variables.
  1038. * standard/Scheme.java (booleanType): Initialize eagerly.
  1039. * repl.java (processArgs): Support '--target 8' and '--target 1.8'.
  1040. 2013-09-25 Per Bothner <per@bothner.com>
  1041. * standard/Scheme.java (initScheme): Add 'list-set!' and
  1042. 'list-copy'.
  1043. 2013-09-23 Per Bothner <per@bothner.com>
  1044. * repl.java (processArgs): Fix a bug in previous change
  1045. in handling of meta-arg.
  1046. 2013-09-22 Per Bothner <per@bothner.com>
  1047. * repl.java (processArgs): Fix handling of meta-arg "\" - don't
  1048. process injected arguments, but instead adjust args array and
  1049. continue. This is more flexible, and simpler.
  1050. * repl.java (processArgs): Update copyright year.
  1051. 2013-09-18 Per Bothner <per@bothner.com>
  1052. * standard/Scheme.java (initScheme): Define "command-line-arguments".
  1053. 2013-09-15 Per Bothner <per@bothner.com>
  1054. * standard/define_autoload.java (findAutoloadComments): Don't
  1055. setProcedureDecl - it's not.
  1056. (process): Update test for symbol.
  1057. * lang/AutoloadProcedure.java (load): Invoke defineAll even if we
  1058. find existing module instance.
  1059. 2013-09-10 Per Bothner <per@bothner.com>
  1060. * standard/object.java (scanClassDef): Note that field value
  1061. is unknown. This fixes Savannah bug#39940
  1062. "Class member of type <procedure> compilation exception".
  1063. 2013-09-06 Per Bothner <per@bothner.com>
  1064. * standard/Scheme.java (initScheme): Various functions
  1065. got moved to strings.scm.
  1066. * standard/Scheme.java (initScheme): Add "digit-value",
  1067. "get-environment-variable", and "get-environment-variables".
  1068. * standard/Scheme.java (writeFormat, sharedWriteFormat,
  1069. displayFormat): Removed fields, replaced by fields in DisplayFormat.
  1070. * lang/SyntaxPattern.java: Update accordingly.
  1071. * lang/SyntaxRules.java: Update accordingly.
  1072. * lang/SyntaxTemplate.java: Update accordingly.
  1073. 2013-09-04 Per Bothner <per@bothner.com>
  1074. * lang/Quote.java (expand_pair): Check for null Translator argument.
  1075. This fixes Savannah bug #39946 "NullPointerException when
  1076. using syntax->datum".
  1077. * repl.java (printOptions): Sort compilation options before printing.
  1078. * repl.java (processArgs): Fix bug in handling of '--'.
  1079. 2013-09-01 Per Bothner <per@bothner.com>
  1080. * standard/Scheme.java (initScheme): Fix 'u8-ready' to 'u8-ready?'.
  1081. 2013-08-31 Per Bothner <per@bothner.com>
  1082. * standard/IfFeature.java (coreFeatures): New static field.
  1083. (hasFeature): Use coreFeatures.
  1084. (featureList): New static method.
  1085. * standard/Scheme.java (initScheme): Add "features".
  1086. 2013-08-25 Per Bothner <per@bothner.com>
  1087. * standard/Scheme.java (initScheme): Add "current-second",
  1088. "current-jiffy", "jiffies-per-second".
  1089. * standard/Scheme.java (initScheme): Add "boolean=?".
  1090. * standard/Scheme.java (initScheme): Add "string-copy!"
  1091. and "square".
  1092. * standard/Scheme.java (initScheme): Add "make-list".
  1093. 2013-07-29 Matthieu Vachon <matthieu.o.vachon@gmail.com>
  1094. * standard/define_alias.java: Implemented define-private-alias
  1095. syntax. This syntax is equivalent to define-alias except it is
  1096. private by default.
  1097. * standard/Scheme.java: Added define-private-alias binding.
  1098. 2013-07-16 Per Bothner <per@bothner.com>
  1099. * lang/Quote.java (expand_pair): Fix bug in handling of nested (i.e.
  1100. doubly quasi-quoted) unquote-splicing. Simplify to be (almost)
  1101. like handling of plain unquote.
  1102. This fixes Savannah bug #39501 "invalid use of unquote-splicing".
  1103. 2013-06-27 Per Bothner <per@bothner.com>
  1104. * standard/define.java (scanForm): Don't set writable if
  1105. this is define-constant.
  1106. 2013-06-16 Per Bothner <per@bothner.com>
  1107. * Makefile.am: Merge in file lists from lang/Makefile.am
  1108. and standard/makefile.am.
  1109. (SUBDIRS): Change to just libs.
  1110. * lang/Makefile.am: Removed.
  1111. * standard/Makefile.am: Removed.
  1112. 2013-06-10 Per Bothner <per@bothner.com>
  1113. * lang/Quote.java (expand_pair): Return a unknown-namespace symbol
  1114. where we before made a SimpleSymbol containing a ':'.
  1115. * lang/Translator.java (rewrite_lookup): New method.
  1116. (rewrite): Handle unknown-namespace Symbol.
  1117. (namespaceResolve): Likewise.
  1118. 2013-06-08 Per Bothner <per@bothner.com>
  1119. * lang/Translator.java (rewrite): When in a method and checking
  1120. if inherited class members are in scope, don't accept a mangled
  1121. match if an exact match is in the regular scope.
  1122. This fixes Savannah bug #39048 "Bad method call resolution?".
  1123. 2013-05-26 Per Bothner <per@bothner.com>
  1124. * Shell.java (run): If evalModule fails, throw SyntaxException,
  1125. which when handled produces better error messages.
  1126. 2013-03-25 Per Bothner <per@bothner.com>
  1127. * standard/Scheme.java (initScheme): Define 'define-simple-constructor'.
  1128. * standard/Scheme.java (emptyString): Replace by 2 new fields:
  1129. (emptyStringLeft, emptyStringRight): New fields, initialized to
  1130. unique objects.
  1131. (initScheme): Update '$<<$' and '$>>$' to bind to new fields.
  1132. 2013-03-20 Per Bothner <per@bothner.com>
  1133. * standard/Scheme.java (initScheme): Declare '$sprintf$'.
  1134. 2013-03-18 Per Bothner <per@bothner.com>
  1135. * lang/SyntaxRules.java (<init>): Some improvements to error reporting.
  1136. 2013-03-04 Charles Turner <chturne@gmail.com>
  1137. * lang/Lambda.java: New hooks for CommonLisp's OrdinaryLambda.
  1138. (addParam): Make protected.
  1139. (auxillaryRewrite): New method.
  1140. (rewriteBody): Use it.
  1141. 2013-02-24 Per Bothner <per@bothner.com>
  1142. * standard/SchemeCompilation.java (checkDefaultBinding): Add
  1143. handling of '->TYPE' as a conversion function.
  1144. 2013-02-23 Per Bothner <per@bothner.com>
  1145. * lang/Translator.java (setLineOf): Only set location if not yet set.
  1146. * standard/Scheme.java (initScheme): Update to use use "$<<$" and
  1147. "$>>$" bindings for quasi-value escaped-expression delimiters.
  1148. * lang/SyntaxForms.java (makeForm): Handle null scope.
  1149. 2013-02-05 Matthieu Vachon <matthieu.o.vachon@gmail.com>
  1150. * lang/Translator.java: Replaced usage of Compilation.generateMain
  1151. with method Compilation.generateMainMethod.
  1152. * repl.java: Delegating handling of --main argument to
  1153. Compilation.options.
  1154. 2013-02-21 Per Bothner <per@bothner.com>
  1155. * lang/Translator.java (lookupStandardEntity): Use new generated
  1156. StandardNamedChars class.
  1157. 2013-02-14 Per Bothner <per@bothner.com>
  1158. * lang/SyntaxForms.java (makeForm): Preserve position info.
  1159. (in member class PairWithPositionSyntaxForm)
  1160. (getCar, getCdr, <init>): Fix bug.
  1161. 2013-02-13 Per Bothner <per@bothner.com>
  1162. * lang/SyntaxForms.java (PairWithPositionSyntaxForm): New member class.
  1163. (makeWithTemplate): Take 3rd optional source-location parameter.
  1164. 2013-02-02 Per Bothner <per@bothner.com>
  1165. * standard/Scheme.java (emptyString): New constant.
  1166. (initScheme): Bind "$[$" and "$]$" tp emptyString.
  1167. 2013-01-20 Per Bothner <per@bothner.com>
  1168. * lang/Translator.java (checkDefaultBinding): Handle $entity$:NAME,
  1169. where NAME is a standard enity names, such as "apos".
  1170. * standard/Scheme.java (initScheme): Define $string$, $format$,
  1171. $entity$, and $construct$.
  1172. 2013-01-13 Per Bothner <per@bothner.com>
  1173. * Shell.java (runFile, compileSource): Tweaks to better handle
  1174. exceptions while parsing/compiling, including SyntaxExceptions.
  1175. 2012-12-26 Per Bothner <per@bothner.com>
  1176. * standard/readchar.java: Fix to handle surrogate characters.
  1177. (readChar(Reader)): Reimplement usting
  1178. new LineBufferedReader static methods.
  1179. (readChar(InPort)): Remove.
  1180. 2012-12-22 Per Bothner <per@bothner.com>
  1181. * standard/throw_name.java: Remove class. Instead re-implement
  1182. 'throw' function in Scheme.
  1183. * standard/Makefile.am (java_sources): Update accordingly.
  1184. * standard/Scheme.java (initScheme): Likewise.
  1185. 2012-12-19 Charles Turner <chturne@gmail.com>
  1186. * lang/Translator.java (checkDefaultBinding): Removed references
  1187. to Scheme.unitNamespace. It has now been moved to LispLanguage.
  1188. * standard/Scheme.java: Factored the unitNamespace into LispLanguage.
  1189. * standard/define_alias.java: Updated references to unitNamespace.
  1190. * standard/define_unit.java: Removed unused imports (unrelated to
  1191. the unitNamespace refactoring). Updated references to unitNamespace.
  1192. 2012-12-17 Charles Turner <chturne@gmail.com>
  1193. * standard/SchemeCompilation.java (checkDefaultBinding): Factored
  1194. out into Translator.
  1195. * standard/SchemeCompilation.java: Update imports accordingly.
  1196. * lang/Translator.java: Updated with the factored code from
  1197. SchemeCompilation, imports updated.
  1198. 2012-12-15 Per Bothner <per@bothner.com>
  1199. * standard/prim_throw.java: Move to gnu/kawa/reflect/Throw.java.
  1200. * standard/Scheme.java (initScheme): Update accordingly.
  1201. * standard/throw_name.java: Update.
  1202. * standard/Makefile.am: Update.
  1203. 2012-12-10 Per Bothner <per@bothner.com>
  1204. * repl.java: Update year printed by --version.
  1205. 2012-11-29 Per Bothner <per@bothner.com>
  1206. * standard/Scheme.java (initScheme): New R7RS output functions
  1207. write-simple and write-shared.
  1208. * standard/Scheme.java (initScheme): New R7RS bytevector functions
  1209. byteector-copy! and vector-append.
  1210. * standard/Scheme.java (initScheme): New R7RS vector functions
  1211. vector-copy and vector-copy!.
  1212. 2012-11-28 Per Bothner <per@bothner.com>
  1213. * standard/Scheme.java (initScheme): New R7RS port functions
  1214. open-binary-input-file, call-with-port, textual-port?, binary-port?,
  1215. port?, input-port-open?, output-port-open?, open-input-bytevector,
  1216. and close-port.
  1217. 2012-11-27 Per Bothner <per@bothner.com>
  1218. * standard/Scheme.java (initScheme): New R7RS input functions
  1219. eof-object, read-string, read-u8, peek-u8, u8-ready, read-bytevector,
  1220. and read-bytevector!.
  1221. * standard/readchar.java (readByte): New static method.
  1222. (readChar): Use readByte.
  1223. * repl.java: Update InPort.openFile call.
  1224. 2012-11-22 Per Bothner <per@bothner.com>
  1225. * standard/Scheme.java (initScheme): Add R7RS output functions
  1226. open-binary-output-file, write-string, write-u8, write-bytevector,
  1227. open-output-bytevector, get-output-bytevector, and flush-output-port.
  1228. 2012-11-20 Per Bothner <per@bothner.com>
  1229. * standard/Scheme.scm (initScheme): Add vector->string
  1230. and string->vector.
  1231. * standard/Scheme.scm: Update classname for bytevector functions.
  1232. 2012-11-06 Per Bothner <per@bothner.com>
  1233. * lang/Translator.java (finishModule): If SUPERTYPE_SPECIFIED then
  1234. we should reset USE_DEFINED_CLASS.
  1235. * repl.java (compileFile): Remove now-redundant ModuleExp#classFor call.
  1236. 2012-11-03 Charles Turner <chturne@gmail.com>
  1237. Per Bothner <per@bothner.com>
  1238. * standard/expt.java (expt): Fixes an unchecked cast to type
  1239. Numeric causing unwanted exceptions.
  1240. 2012-11-02 Per Bothner <per@bothner.com>
  1241. * standard/module_export.scm: Defer resolving the type name.
  1242. (scanForm): New method.
  1243. * standard/module_implements: Similar.
  1244. * lang/Translator.java (exp2Type): Don't use InlineCalls at this stage.
  1245. 2012-10-21 Per Bothner <per@bothner.com>
  1246. * standard/Scheme.java: Define $xml-element$ and similar bindings.
  1247. 2012-10-20 Per Bothner <per@bothner.com>
  1248. * Shell.java (printError): Remove confusing/unhelpful special case
  1249. for ClassCastException.
  1250. 2012-10-20 Charles Turner <chturne@gmail.com>
  1251. Re-factor type lookup to avoid Scheme dependencies.
  1252. * standard/Scheme.java: Bunch of stuff moved up to LispLanguage.
  1253. (getTypeMap): Most of the predefined types moved to super.
  1254. * standard/SchemeCompilation.java: Don't use static cal to getNamedType.
  1255. 2012-09-27 Per Bothner <per@bothner.com>
  1256. * standard/module_name.java (scanForm): Set declarations value to
  1257. the ModuleExp (similar to what we do for ClassExp), not ClassType.
  1258. 2012-09-26 Per Bothner <per@bothner.com>
  1259. * standard/define_alias.java (rewrite): Replace by non-dummy ...
  1260. (rewriteForm): New method that does actual rewrite for alias-ee.
  1261. Note that Declaration is EARLY_INIT.
  1262. (scanForDefinitions): Replace by ...
  1263. (scanForm): Defer expression handling to rewriteForm.
  1264. 2012-08-18 Charles Turner <chturne@gmail.com>
  1265. * lang/begin.java: Purged unused imports.
  1266. * standard/Scheme.java: Purged unused imports.
  1267. 2012-08-18 Per Bothner <per@bothner.com>
  1268. * lang/Translator.java (errorWithPosition): New convenience method.
  1269. * standard/object.java (scanClassDef): Use it.
  1270. 2012-08-13 Charles Turner <chturne@gmail.com>
  1271. * lang/Translator.java (rewriteBody, makeBody): Changed access
  1272. from private to protected for Lisp2Compilation's declare
  1273. processing.
  1274. 2012-08-13 Charles Turner <chturne@gmail.com>
  1275. * standard/let.java (let, settingProcedures): Distinguish between flet
  1276. and let.
  1277. * standard/let.java (maybeSetProcedure): New method, sets a
  1278. procedure declaration if its a flet.
  1279. 2012-08-01 Per Bothner <per@bothner.com>
  1280. * lang/Translator.java: Use new setPushCurrentScope/setPopCurrentScope
  1281. methods to control re-use of module-level declarations.
  1282. 2012-07-27 Per Bothner <per@bothner.com>
  1283. * standard/object.java (scanClassDef): Handle the case when
  1284. method name is a SyntaxForm.
  1285. 2012-06-08 Per Bothner <per@bothner.com>
  1286. * lang/SyntaxTemplate.java (convert_template): The 2012-04-18
  1287. fix was incorrect.
  1288. 2012-05-20 Per Bothner <per@bothner.com>
  1289. * repl.java (processArgs): Fix typo "target" -> "-target".
  1290. 2012-05-10 Per Bothner <per@bothner.com>
  1291. * repl.java (processArgs): Fix error message if --no-xxx passed,
  1292. and xxx is not a known option.
  1293. 2012-05-03 Per Bothner <per@bothner.com>
  1294. * standard/define_class.java (scanForDefinitions, rewriteForm): Make
  1295. more robust. This fixes Savannah bug #36335 "NPE on syntax error".
  1296. 2012-04-18 Per Bothner <per@bothner.com>
  1297. * lang/SyntaxTemplate.java (convert_template): Convert SyntaxForm
  1298. symbol to itself. This fixes Savanannah bug #35526 "Nested macro".
  1299. 2012-04-14 Per Bothner <per@bothner.com>
  1300. Add "marks" to TemplateScope, match syntax-case spec.
  1301. Each mark corresponds to an application of a macro.
  1302. Fixes Savannah bug #35552: "bound-identifier=?".
  1303. * lang/TemplateScope.java (macroMark): New field.
  1304. (make): Set macroMark field.
  1305. * lang/Translator.java (currentMacroMark): New field.
  1306. * lang/Macro.java (expand): Create new mark and save it in
  1307. currentMacroMark field.
  1308. * lang/SyntaxForms.java (identifierEquals): In the bound-identifier=?
  1309. case compare marks from TemplateScope.
  1310. 2012-03-25 Per Bothner <per@bothner.com>
  1311. * standard/let.java (rewrite): Check for duplicate definitions.
  1312. * standard/define_syntax.java (scanForm): If we're not in a top-level
  1313. context, quote the macro instead of compiling it.
  1314. 2012-03-21 Per Bothner <per@bothner.com>
  1315. * Shell.java (runFile): Pass error port to run iflineByLine.
  1316. This causes warnings and errors to be printed out.
  1317. 2012-03-15 Per Bothner <per@bothner.com>
  1318. * standard/SchemeCompilation.java (isSimpleApplyFunction): New method.
  1319. 2012-02-13 Per Bothner <per@bothner.com>
  1320. * standard/Scheme.java (initScheme): Define syntax->datum and
  1321. datum->syntax.
  1322. 2012-02-05 Per Bothner <per@bothner.com>
  1323. * lang/Quote.java (matchesUnquote, matchesUnquoteSplicing,
  1324. matchesQuasiQuote): New protected methods for match unquote etc.
  1325. * standard/syntax.java (matchesUnquote, matchesUnquoteSplicing,
  1326. matchesQuasiQuote): Override for quasisyntax.
  1327. * standard/Scheme.java (createReadTable): Update.
  1328. * lang/TemplateScope.java (make): Make more robust in case
  1329. syntax/quasisyntax is used in an non-macro context.
  1330. 2012-02-04 Helmut Eller <eller.helmut@gmail.com>
  1331. * TelnetRepl.java (serve): Return a vanilla Thread, rather than a
  1332. Future. This avoids a force if displaying, and seems more appropriate.
  1333. 2012-01-31 Per Bothner <per@bothner.com>
  1334. * standard/require.java (importDefinitions): Add a null check.
  1335. * standard/Scheme.java (initScheme): New functions 'force*'.
  1336. * standard/object.java (scanClassDef): Set IS_ABSTRACT if interface
  1337. specified explicitly.
  1338. 2012-01-29 Per Bothner <per@bothner.com>
  1339. * lang/Translator.java (exp2Type): Take extra syntax parmeter
  1340. so we can pass it to rewrite.
  1341. * standard/let.java (rewrite): Pass syntax to exp2Type.
  1342. * lang/Lambda.java: Update exp2Type call..
  1343. * standard/object.java: Likewise.
  1344. 2012-01-27 Per Bothner <per@bothner.com>
  1345. * standard/Scheme.java (initScheme): Fix binding for "call/cc".
  1346. * standard/Scheme.java (initScheme): Declare promise-set-value!,
  1347. promise-set-alias!, promise-set-exception!, and promise-set-thunk!.
  1348. (getTypeName): Change binding for "promise".
  1349. 2012-01-24 Per Bothner <per@bothner.com>
  1350. * lang/SyntaxPattern.java (allocVars): Don't copy more from
  1351. inherited array than is in it.
  1352. 2012-01-21 Per Bothner <per@bothner.com>
  1353. * lang/Quote.java (expand): If quasi-quoting a vector, return
  1354. a ConstVector, not a (mutable) FVector.
  1355. * standard/vector_appane.java (appendToConstVector): New method.
  1356. * standard/object.java (scanClassDef): If seen ABSTRACT_ACCESS
  1357. then set IS_ABSTRACT on ClassExp.
  1358. (matchAccess1): Map "abstract" to ABSTRACT_ACCESS.
  1359. 2012-01-19 Per Bothner <per@bothner.com>
  1360. * lang/SyntaxForms.java (identifierEquals): New static method.
  1361. (freeIdentifierEquals): Removed - subsumed by identifierEquals.
  1362. * standard/Scheme.java (initScheme): Define bound-identifier=?.
  1363. 2012-01-17 Per Bothner <per@bothner.com>
  1364. * standard/expt.java (expt): Force operands.
  1365. 2012-01-15 Per Bothner <per@bothner.com>
  1366. * standard/Scheme.java (initScheme): Define "lazy" and "eager"
  1367. from SRFI-45 and R7RS.
  1368. (getTypeMap): Rename type "lazy" to "promise".
  1369. 2012-01-09 Per Bothner <per@bothner.com>
  1370. * Shell.java (runClass): New static method.
  1371. (runFileOrClass): Use runClass.
  1372. * standard/load.java (apply2): If file not found, try loading
  1373. and running class, similar with behavior of -f command-line option.
  1374. 2012-01-01 Per Bothner <per@bothner.com>
  1375. * standard/Scheme.java (initScheme): Remove %make-promise definition.
  1376. (getTypeMap): Define type "lazy".
  1377. (formatType): Handle LazyType.
  1378. 2011-12-19 Per Bothner <per@bothner.com>
  1379. * standard/Scheme.java (initScheme): New R7RS bytevector functions.
  1380. 2011-12-10 Per Bothner <per@bothner.com>
  1381. * Shell.java (run): Set PARSE_INTERACTIVE_MODULE module so
  1382. setInteractiveName gets called at the start of parse instead of after.
  1383. 2011-12-02 Per Bothner <per@bothner.com>
  1384. * standard/SchemeCompilation.java (checkDefaultBinding): Catch
  1385. NoClassDefFoundError so we can emit informative warning.
  1386. * lang/Translator.java (rewrite): Change API so we can distinguidh
  1387. when called from scan looking for macros - in which case we don't
  1388. want to call checkDefaultBinding, both for performance, and to
  1389. avoid a duplicate warning.
  1390. 2011-11-29 Per Bothner <per@bothner.com>
  1391. * lang/Translator.java (pushRenamedAlias, popRenamedAlias): We don't
  1392. need to push the templateScope on the renamedAliasStack, since we
  1393. can get it from the alias Declaration.
  1394. (renamedAliasStack): Can therefore make renamedAliasStack be
  1395. parameterized, since only Declarations are pushed.
  1396. Also make private.
  1397. 2011-11-27 Per Bothner <per@bothner.com>
  1398. * standard/Scheme.java (getTypeMap): Define string-input-port type.
  1399. This fixes Savannah bug #34821 "String Input/Output Port Symmetry".
  1400. 2011-11-15 Per Bothner <per@bothner.com>
  1401. * lang/Lambda.java (rewrite): Do setCallConvention on new LambdaExp.
  1402. * lang/Eval.java: No longer extends Procedure1or2.
  1403. Instead only static methods.
  1404. (eval): Remove field.
  1405. (apply1, apply2, apply): Remove methods.
  1406. (evalForm$X): New method.
  1407. * standard/Scheme.java (initScheme): eval method is now in Scheme.
  1408. 2011-11-02 Per Bothner <per@bothner.com>
  1409. * standard/module_name.java (scanForm): Fix thinko where classPrefix
  1410. was pre-pended twice.
  1411. 2011-10-24 Per Bothner <per@bothner.com>
  1412. * lang/Lambda.java (rewriteFormals, rewriteBody): Default argument
  1413. expressions use Declaration#initValue instead of LambdaWxp#defaultArgs.
  1414. * standard/Scheme.java: Update call to ReaderParens.readList.
  1415. * standard/define.java (scanForm): Defer lambda.rewriteFormals and
  1416. rewriteAttrs of lambdas to rewrite phase.
  1417. (rewriteForm): This allows simplification so we can just use
  1418. the Lambda.rewrite method.
  1419. 2011-10-21 Per Bothner <per@bothner.com>
  1420. * lang/Translator.java (pushRenamedAlias): Fix thinko.
  1421. 2011-10-21 Shad Gregory <captshadg@gmail.com>
  1422. Per Bothner <per@bothner.com>
  1423. * repl.java (evalInitFileWithErrorMessage): New static method.
  1424. (getInitFile): New static method.
  1425. (checkInitFile): Use getInitFile.
  1426. 2011-10-08 Per Bothner <per@bothner.com>
  1427. * standard/Sheme.java (initScheme): Define write-with-shared-structure.
  1428. Define *print-circle* alias.
  1429. (sharedWriteFormat): New static field.
  1430. 2011-09-24 Jamison Hope <jrh@theptrgroup.com>
  1431. * standard/IfFeature.java: New "java-7" feature.
  1432. 2011-10-06 Per Bothner <per@bothner.com>
  1433. * standard/object.java (scanClassDef): Add an extra needed call to
  1434. Translator#stripSyntax.
  1435. 2011-10-01 Jamison Hope <jrh@theptrgroup.com>
  1436. * lang/Translator.java (rewrite): Map #!native to QuoteExp.nativeExp.
  1437. 2011-09-06 Per Bothner <per@bothner.com>
  1438. * standard/call_with_values.java (apply, apply2): Use
  1439. LangObjType.coerceToProcedure for the producer function as well.
  1440. 2011-08-25 Per Bothner <per@bothner.com>
  1441. * lang/Eval.java (evalBody): Use new Compilation#setEvalName.
  1442. (evalFunctionName): Remove field.
  1443. * Shell.java (run): Use Compilation#setInteractiveName.
  1444. 2011-08-04 Per Bothner <per@bothner.com>
  1445. * repl.java: Update copyright year printed by --version.
  1446. 2011-07-27 Per Bothner <per@bothner.com>
  1447. * standard/require.java (feature-map): Add 'javafx-defs.
  1448. 2011-07-11 Per Bothner <per@bothner.com>
  1449. * standard/Scheme.java (eval): Use updated LispReader API.
  1450. 2011-07-11 Per Bothner <per@bothner.com>
  1451. * lang/Quote.java: Tweaks and fixes to actually handle cyclic values.
  1452. 2011-06-14 Per Bothner <per@bothner.com>
  1453. * lang/Promise.java: Moved from here to gnu.mapping.
  1454. 2011-06-07 Per Bothner <per@bothner.com>
  1455. * lang/Promise.java: Make thread-safe - hopefully.
  1456. Handle the case where expression returns null or an actual Throwable.
  1457. 2011-05-13 Per Bothner <per@bothner.com>
  1458. * lang/Lambda.java (rewriteWrite): Skip the initial pass to count
  1459. formals - instead just use use a single pass.
  1460. Also, make more robust for some errors.
  1461. 2011-05-02 Per Bothner <per@bothner.com>
  1462. * lang/TemplateScope.java: Remove no-longer-needed super-calls.
  1463. * lang/PatternScope.java: Likewise.
  1464. * lang/Translator.java (rewrite_body): Update for new LetExp API.
  1465. * standard/fluid_let.java: Likewise.
  1466. * standard/let_syntax.java: Likewise.
  1467. * lang/SyntaxPattern.java (translate): Note that pattern declarations
  1468. are initialized to Undefined here, instead of ...
  1469. * standard/syntax_case.java (rewriteClauses): No longer do it here.
  1470. (allocVars): Make static.
  1471. (rewriteForm): Update.
  1472. 2011-04-25 Charles Turner <chturne@gmail.com>
  1473. Per Bothner <per@bothner.com>
  1474. * standard/Scheme.java (getTypeMap): New "empty-list" type,
  1475. for improved error messages.
  1476. * standard/module_static.java (scanForDefinitions): Fix type
  1477. inconsistency.
  1478. 2011-04-18 Per Bothner <per@bothner.com>
  1479. * lang/Lambda.java (rewriteFormals): Don't need to noteValueUnknown
  1480. for regular parameters - that is handled later.
  1481. 2011-04-17 Per Bothner <per@bothner.com>
  1482. * standard/Scheme.java (initScheme): Initialize symbol-read-case"
  1483. to the empty string, not "P".
  1484. (getLexer): New method. If FOLLOW_R5RS, default read-case to 'D'.
  1485. * standard/Scheme.java: Add support for switchable Scheme dialects,
  1486. specifically ones that follow r5rs, r6rs, or r7rs.
  1487. (r5rsInstance, r6rsInstance, r7rsInstance): New fields.
  1488. (FOLLOW_R5RS, FOLLOW_R5RS, FOLLOW_R5RS): New constants.
  1489. (getR5rsInstance, getR6rsInstance, getR7rsInstance): New methods.
  1490. (getName): Update accordingly.
  1491. (createReadTable): Some changes for standard Scheme.
  1492. 2011-04-16 Per Bothner <per@bothner.com>
  1493. * lang/Translator.java (rewrite): Change checking for "object" ambiguity
  1494. by using field name, rather than prematurely calling getConstantValue.
  1495. (isObjectSyntax): New helper method.
  1496. 2011-04-15 Per Bothner <per@bothner.com>
  1497. * standard/SchemeCompilation.java (checkDefaultBinding): Note that
  1498. function parameter's value is unknown.
  1499. * standard/object.java (rewriteClassDef): Don't call declareParts
  1500. here, instead do it later in PushApply. The problem is that
  1501. declareParts allocates fields and methods eagerly and prematurely
  1502. sets the type based on the Declaration's types. Ideally, setting
  1503. the field type should be done in InlineCalls, when we do type
  1504. inferencing. But at least waiting until PushApply avoids the
  1505. problem of try to infer the type based on the value setters, which
  1506. may not all have been seen yet during the rewrite phase.
  1507. 2011-04-15 Charles Turner <chturne@gmail.com>
  1508. * ReplPane.java (enter): Moved method ...
  1509. * ReplDocument.java (enter): .. to here.
  1510. 2011-04-10 Per Bothner <per@bothner.com>
  1511. * standard/IfFeature.java (hasFeature): Add support for
  1512. class-exists:CLASS_NAME as a feature "name".
  1513. 2011-04-03 Per Bothner <per@bothner.com>
  1514. * standard/SchemeCompilation.java (isApplyFunction): New method.
  1515. * lang/Translator.java (makeApply): Make return type more precise.
  1516. * standard/SchemeCompilation.java (makeApply): Likewise.
  1517. * standard/syntax_case.java: Use more-precise noteValueFromLet.
  1518. * standard/define.java (rewriteForm): Use rewrite_car, so we
  1519. can pass though line number information.
  1520. 2011-03-23 Per Bothner <per@bothner.com>
  1521. * standard/let.java (rewrite): Use letStart/letVariable
  1522. etc methods instead of creating LetExp directly.
  1523. * lang/Translator.java: Use new LetExp#setBody method.
  1524. * fluid_let.java: Likewise.
  1525. * standard/syntax_case.java: Likewise.
  1526. 2011-03-18 Per Bothner <per@bothner.com>
  1527. * repl.java (processArgs): New --diagnostic-strip-directories option.
  1528. 2011-03-16 Per Bothner <per@bothner.com>
  1529. * standard/fluid_let.java (warnIfUndefined): New field.
  1530. (rewrite): Set IS_DYNAMIC unless warnIfUndefined.
  1531. * standard/IfFeature.java (isProvide): New convenience method.
  1532. (PROVIDE_PREFIX): New constant.
  1533. (hasFeature): Use PROVIDE_PREFIX.
  1534. Fix bug where we'd lookup using a String rather than a Symbol.
  1535. * lang/Translator.java (finishModule): The magic provide declarations
  1536. need to be exported.
  1537. * lang/Translator.java (scanBody): If a require form causes parsing to
  1538. be suspended, we need to push back forms popped from the formStack.
  1539. 2011-02-24 Per Bothner <per@bothner.com>
  1540. * standard/Scheme.java: Change s8vector, u8vector, s16vector, u16vector,
  1541. s32vector, u32vector, s64vector, u64vector, f32vector, f44vector to
  1542. refer to LangObjType instances, not constructor instances.
  1543. 2011-02-10 Jamison Hope <jrh@theptrgroup.com>
  1544. Per Bothner <per@bothner.com>
  1545. * standard/IfFeature.java: New "java-6" feature.
  1546. 2011-02-08 Jamison Hope <jrh@theptrgroup.com>
  1547. * standard/require.java (featureMap): Add srfi-14.
  1548. * standard/ImportFromLibrary.java (SRFI97Map): Add srfi-14.
  1549. 2011-02-06 Per Bothner <per@bothner.com>
  1550. * lang/Quote.java (expand_pair): If quoting EXP:NAME just quitely
  1551. return the (non-standard) SEXPR-representation without complaining.
  1552. 2011-02-05 Per Bothner <per@bothner.com>
  1553. * lang/Macro.java (hygienic): Replace boolean with ..
  1554. (flag): new bit mask.
  1555. (HYGIENIC): New constant.
  1556. (SKIP_SCAN_FORM): New constant.
  1557. (makeSkipScanForm): New factory method.
  1558. (scanForm): Just call super, rather than expanding, if SKIP_SCAN_FORM.
  1559. * standard/define_syntax.java (flags): New field.
  1560. (define_rewrite_syntax): New static.
  1561. * standard/Scheme.java (initScheme): Define define-rewrite-syntax.
  1562. * standard/require.java (scanForDefinitions): Handle the case
  1563. (require CNAME "FILE") where CNAME doesn't (yet) exist. Before it
  1564. would work only when using angle-bracket syntax, which forces a
  1565. ClassType - but a plain CNAME doesn't. So check for a null result
  1566. from getTypeFor.
  1567. 2011-01-27 Per Bothner <per@bothner.com>
  1568. * lang/Lambda.java: Update to use new Declaration.ValueSource methods.
  1569. * standard/let.java: Likewise.
  1570. * standard/define_alias.java: Likewise.
  1571. * standard/object.java: Likewise.
  1572. * standard/fluid_let.java: Likewise.
  1573. * standard/set_b.java: Likewise.
  1574. * standard/define.java: Likewise. Some re-writing needed.
  1575. 2011-01-24 Per Bothner <per@bothner.com>
  1576. * lang/Quote.java (expand_pair): Change handling of prefixed names
  1577. with unknow prefix to also handle prefixes bound to classes.
  1578. * repl.java: Micro-optimize indexOf("=") to indexOf('=').
  1579. * repl.java (internalError): Write out existing messages before
  1580. reporting exception.
  1581. * standard/SchemeCompilation.java: Update new Compilation#makeQuoteExp.
  1582. This adds line number information to the resulting QuoteExp-s.
  1583. 2011-01-19 Per Bothner <per@bothner.com>
  1584. * lang/Translator.java (appendBodyValues): New method.
  1585. (makeBody): New method, replacing one in LispLanguage and sub-classes.
  1586. * standard/SchemeCompilation.java (appendBodyValues): New method.
  1587. * standard/Scheme.java (appendBodyValues): New method.
  1588. (initScheme): Update class providing mangleNameIfNeeded.
  1589. 2011-01-17 Per Bothner <per@bothner.com>
  1590. * lang/Eval.java (evalBody): Use language#getCompilation to allocate
  1591. proper Compilation class, rather than hardwiring in Translator.
  1592. * lang/Translator.java (makeApply, checkDefaultBinding): New
  1593. overridable methods, replace LispLanguage methods.
  1594. * standard/SchemeCompilation.java: Change to extend Translator.
  1595. (applyFieldDecl): New field.
  1596. (makeApply, checkDefaultBinding): New methods, moved here from Scheme.
  1597. * Scheme.java (applyFieldDecl): Remove field.
  1598. (makeApply, checkDefaultBinding): Removed methods.
  1599. * set_b.java: Trivial update.
  1600. 2011-01-03 Per Bothner <per@bothner.com>
  1601. * standard/Scheme.java (initScheme): Declare $bracket-apply$ and
  1602. $bracket-list$ reader pseudo-functions.
  1603. 2011-01-01 Per Bothner <per@bothner.com>
  1604. * standard/object.java (rewriteForm): Don't need to allocate
  1605. ClassTypes here, since done in ObjectExp constructor.
  1606. * standard/define_class.java (scanForDefinitions): Update call
  1607. to constructor.
  1608. * repl.java (processArgs): Don't set compiled class name here directly
  1609. here, even if -T flag was given. Instead, note class name in
  1610. ModuleInfo instance.
  1611. * standard/object.java (rewriteForm): Do setClassType, since it is
  1612. no longer done by constructor.
  1613. (rewriteClassDef): Move logic for rewriting and setting explicit
  1614. class name from here ...
  1615. (scanClassDef): ... to and of scan phase here.
  1616. * standard/define_class.java (scanForDefinitions): Set class name here.
  1617. Allocate ClassType - after checking if class name matches module class
  1618. name.
  1619. 2010-12-30 Per Bothner <per@bothner.com>
  1620. * lang/Translator.java (exp2Type(Pair,Declaration)): New method.
  1621. * lang/Lambda.java: Use new exp2Type and Declaration#setType methods.
  1622. * standard/object.java (scanClassDef): Don't rewrite parameter
  1623. type-specifier here - instead create a LangExp, and ...
  1624. (rewriteClassDef): Do the rewrite here instead.
  1625. 2010-12-28 Per Bothner <per@bothner.com>
  1626. * standard/fluid_let.java (rewrite): Check for base definition in
  1627. builtin environment to avoid undefined-variable warnings.
  1628. * standard/Scheme.java (initScheme): Declare '*print-xml-indent*"'.
  1629. * repl.java (compileFiles): If both -T and -P flags are specified,
  1630. prepend prefix to to topclassname.
  1631. 2010-12-27 Jamison Hope <jrh@theptrgroup.com>
  1632. * standard/Scheme.java (initScheme): Define some R6RS procedures.
  1633. (r6Environment): New static field.
  1634. 2010-12-27 Per Bothner <per@bothner.com>
  1635. * standard/Scheme.java (getTypeMap): Change 'procedure' to
  1636. LangObjType.procedureType.
  1637. * standard/call_with_values.java (apply, apply2): Use new
  1638. LangObjType.coerceToProcedure instead of cast to Procedure.
  1639. 2010-12-26 Per Bothner <per@bothner.com>
  1640. * lang/Lambda.java: Recognize and handle function/method annotations.
  1641. (rewriteAnnotations): New method
  1642. (isAnnotationSymbol): New method - to moved object.java.
  1643. * standard/object.java Handle class annotations.
  1644. (isAnnotationSymbol): Moved to Lambda.java.
  1645. (rewriteClassDef): Make use of rewriteAnnotations.
  1646. 2010-12-24 Per Bothner <per@bothner.com>
  1647. * standard/Scheme.java (initScheme): Declare 'annotation'.
  1648. (checkDefaultBinding): Map '@NAME' to MakeAnnotation.
  1649. * standard/object.java (scanClassDef): Recognize field annotations.
  1650. (rewriteClassDef): Handle annotations.
  1651. (isAnnotationSymbol): Helper method.
  1652. 2010-11-20 Jamison Hope <jrh@theptrgroup.com>
  1653. Per Bothner <per@bothner.com>
  1654. * standard/require.java (faturemap): Add SRFI-41 features.
  1655. * ImportFromLibrary.java (SRFI97Map): Add SRFI-41 library names.
  1656. (scanForDefinitions): Handle multiple libraries (or sub-libraries)
  1657. for the same SRFI.
  1658. 2010-11-18 Per Bothner <per@bothner.com>
  1659. * standard/object.java (scanClassDef): For 'interface:' argument,
  1660. check for SyntaxForm, in case the class definition is macro-generated.
  1661. 2010-11-14 Per Bothner <per@bothner.com>
  1662. * lang/Translator.java (pushPositionOf, popPositionOf): Use 'this'
  1663. as special marker, instead of Special.eof, since latter may
  1664. cause some issues with a literal #!eof, at least under Q2.
  1665. 2010-11-04 Per Bothner <per@bothner.com>
  1666. * repl.java: Update for new Options#keys which now returns ArrayList.
  1667. 2010-10-28 Per Bothner <per@bothner.com>
  1668. * Shell.java (runFileOrClass): Print stack trace if running class
  1669. throws exception.
  1670. * standard/Scheme.java (initScheme): Declare 'define-enum'.
  1671. * standard/object.java (rewriteInit): Explicitly set return type of
  1672. initMethod to null.
  1673. * standard/object.java (addAccessFlags): New convenience method.
  1674. (scanClassDef): Make use of it for class and field access flags.
  1675. (matchAccess): Check for SyntaxForm.
  1676. (matchAccess1): Update to handle "enum" and "final".
  1677. 2010-10-24 Per Bothner <per@bothner.com>
  1678. * standard/require.java (featureMap): Add "syntax-utils".
  1679. 2010-10-15 Per Bothner <per@bothner.com>
  1680. * standard/Scheme.java (isOdd, isEven): New static fields.
  1681. (initScheme): Change definitions of odd? and even?.
  1682. 2010-10-10 Per Bothner <per@bothner.com>
  1683. * lang/Eval.java (evalBody): Change the initial Compilation 'state'
  1684. so require#importDefinitions does the right thing.
  1685. 2010-10-09 Per Bothner <per@bothner.com>
  1686. * standard/requires.java (importDefinitions): Update
  1687. pushPendingImport call.
  1688. * lang/Eval.java (evalBody): Do setSharedModuleDefs, like
  1689. other interfactive evaluations.
  1690. 2010-10-08 Per Bothner <per@bothner.com>
  1691. * standard/require.java (importDefinitions): Partly refer 2010-09-30
  1692. change. However, check Compilation#sharedModuleDefs rather than
  1693. immediate.
  1694. 2010-10-04 Per Bothner <per@bothner.com>
  1695. * standard/Scheme.java (getTypeMap): Remove redundant (over-written)
  1696. setting for "string".
  1697. 2010-09-30 Per Bothner <per@bothner.com>
  1698. * Shell.java (compileSource): Pass PARSE_IMMEDIATE only to parse;
  1699. don't pass PARSE_CURRENT_NAMES (which is part of PARSE_FOR_EVAL).
  1700. * standard/define.java (scanForm): Only set CAN_WRITE if
  1701. sharedModuleDefs(), not for all immediate compilations.
  1702. * standard/require.java (importDefinitions): Always make alias
  1703. declarations private, regardless of Compilation#immediate.
  1704. 2010-09-29 Per Bothner <per@bothner.com>
  1705. * standard/module_implements.java: Move logic from rewriteForm to
  1706. scanFrom, for same reason as 2008-12-23 change to module_extends.java.
  1707. Fixes bug reported 2010-09-13 by Jamison Hope <jrh@theptrgroup.com>.
  1708. 2010-09-20 Per Bothner <per@bothner.com>
  1709. * standard/define.java (rewriteForm): Don't prematurely getTypeExp
  1710. unless TYPE_SPECIFIED, since doing so forces type to Object.
  1711. * standard/object.java (scanClassDef): Use new ClassExp#addMethoda.
  1712. 2010-09-17 Per Bothner <per@bothner.com>
  1713. * lang/Translator.java (rewrite): Pass SourceLocator when
  1714. creating QuoteExp.
  1715. 2010-09-15 Per Bothner <per@bothner.com>
  1716. * standard/Scheme.java (formatType): New method.
  1717. (typeToStringMap): New static HashMap.
  1718. 2010-08-31 Per Bothner <per@bothner.com>
  1719. * repl.java (processArgs): Remove unused --fewer-classes option.
  1720. 2010-08-27 Per Bothner <per@bothner.com>
  1721. * standard/map.java: Oved/renamed to gnu/kawa/functions/Map.java.
  1722. * standard/callcc.java: Moved/renamed to gnu/kawa/functions/CallCC.java.
  1723. * standard/Makefile.am: Update accordingly.
  1724. * standard/Scheme.java: Update accordingly.
  1725. 2010-08-26 Per Bothner <per@bothner.com>
  1726. * lang/Translator.java (rewrite): Use new ClassExp#getClassType.
  1727. 2010-08-20 Per Bothner <per@bothner.com>
  1728. * standard/TracedProcedure.java (applyN): Update since
  1729. setWithSave/setRestore no longer take CallContext argument.
  1730. 2010-08-19 Per Bothner <per@bothner.com>
  1731. * kawa/standard/fluid_let.java: Call setFLuid on lexical base.
  1732. * TelnetRepl.java: No longer pass current environment to Future.
  1733. * ReplDocument.java: Various Environment/Fuure updates.
  1734. 2010-08-17 Per Bothner <per@bothner.com>
  1735. * lang/Translator.java (isLexical): Remove method. Moved logic to
  1736. FindCapturedvars.walkReferenceExp.
  1737. (rewrite): Don't call isLexical to check for fluid-variable - it
  1738. causes false postives for --warn-undefined-variable.
  1739. 2010-08-16 Per Bothner <per@bothner.com>
  1740. * lang/Translator.java (rewriteBody): Change to take an LList.
  1741. This allows using the incoming Pairs for position information.
  1742. 2010-08-15 Per Bothner <per@bothner.com>
  1743. * standard/syntax_case.java (rewriteClauses): Check for
  1744. missing output expression.
  1745. * repl.java: Fix tab/space problem, which broke PreProcess.
  1746. 2010-08-06 Per Bothner <per@bothner.com>
  1747. * lang/Lambda.java (rewriteAttrs): The classes of the throws specifier
  1748. may evaluate to a QuoteExp as well as a ReferenceExp. Defer
  1749. error-checking and resolution to LambdaExp.addMethodFor.
  1750. 2010-08-01 Per Bothner <per@bothner.com>
  1751. * standard/callcc.java (CompileTimeContinuation.compile): Use
  1752. AppendValues when we need to deal with multiple values,
  1753. rather than (incorrectly) Values.make.
  1754. * lang/Translator.java (rewrite): Don't set IS_SINGLE_VALUE in
  1755. Declarations - among other problems it causes a (probably-harmless)
  1756. race condition.
  1757. * lang/Lambda.java (rewriteFormals): Set IS_SINGLE_VALUE on formals.
  1758. * standard/let.java (rewrite): Set IS_SINGLE_VALUE on variables.
  1759. * standard/define.java (scanForm): Likewise.
  1760. * standard/define_variable.java (scanForDefinitions): Likewise.
  1761. * repl.java: Update Language setting calls.
  1762. * Shell.java: Likewise.
  1763. * lang/Eval.java (evalBody): Use new Compilation convenience methods.
  1764. * lang/Translator.java (resolveModule): Likewise.
  1765. 2010-07-31 Per Bothner <per@bothner.com>
  1766. * standard/set_b.java (rewriteForm): Don't complain about assigning
  1767. to imported variable it it is dynamic.
  1768. 2010-07-17 Per Bothner <per@bothner.com>
  1769. * repl.java: Remove unneeded package prefixes.
  1770. 2010-07-07 Per Bothner <per@bothner.com>
  1771. * repl.java (processArgs): The --servlet flag also sets the
  1772. HttpRequestContext.importServletDefinitions static field.
  1773. * standard/Scheme.java (<clinit>): Import HTTP or servlet library class
  1774. if HttpRequestContext.importServletDefinitions is non-zero.
  1775. 2010-06-29 Mario Domenech Goulart <mario.goulart@gmail.com>
  1776. * repl.java: Fix typo.
  1777. 2010-06-21 Per Bothner <per@bothner.com>
  1778. * lang/Translator.java (rewrite_pair): Check for literal Syntax *after*
  1779. rewrite_pair. This is needed for macro that returns an xml literal.
  1780. 2010-06-14 Per Bothner <per@bothner.com>
  1781. * standard/Scheme.java (initScheme): Fix typo for symbol=?.
  1782. Declare new functions namespace-uri and namespace-prefix.
  1783. 2010-05-31 Per Bothner <per@bothner.com>
  1784. * standard/Scheme.java (initScheme): Declare new functions symbol=?,
  1785. symbol-local-name, symbol-namespace, symbol-namespace-uri,
  1786. symbol-prefix.
  1787. 2010-05-24 Per Bothner <per@bothner.com>
  1788. * lang/Translator.java (xmlElementNamespaces): New field.
  1789. * standard/Scheme.java (createReadTable): Add "symbol".
  1790. 2010-05-19 Per Bothner <per@bothner.com>
  1791. * standard/Scheme.java (initScheme): Remove "namespace" function.
  1792. (getNamedType): Add "namespace" type instead.
  1793. (unitNamespace): Update Namespace.make -> valueOf.
  1794. 2010-05-07 Per Bothner <per@bothner.com>
  1795. * repl.java: Also pass PARSE_EXPLICIT to parse when compiling.
  1796. * standard/require.java (importDefinitions): Check that compilation
  1797. is null before checkCurrent, since the latter no longer does.
  1798. 2010-05-06 Per Bothner <per@bothner.com>
  1799. Fix issue where required modules inherit --aplet and --servlet options.
  1800. * repl.java (defaultParseOptions): New field.
  1801. (processArgs): Change --applet and --servlet to just
  1802. set bits in defaultParseOptions.
  1803. (compileFiles): Pass defaultParseOptions to Language.parse.
  1804. 2010-04-18 Per Bothner <per@bothner.com>
  1805. * repl.java (processArgs): Add new options --http-auto-handler and
  1806. --http-start to start web server.
  1807. * standard/IfFeature.java: New features in-http-server and in-servlet.
  1808. * standard/require.java: New servlets module.
  1809. 2010-04-13 Per Bothner <per@bothner.com>
  1810. * lang/Macro.java (expand): Remove bad debugging print-out.
  1811. 2010-04-10 Per Bothner <per@bothner.com>
  1812. * standard/IfFeature.java (hasFeature): If JAVA6COMPAT5 then
  1813. use reflection to test for feature string-normalize-unicode.
  1814. * lang/Promise.java (force): New static method, used to implement
  1815. Scheme 'force' method. Condtionally handle java.util.concurrent.Future.
  1816. 2010-04-07 Per Bothner <per@bothner.com>
  1817. * standard/Scheme.java: Fix name of class implementing "resolve-uri".
  1818. 2010-04-05 Per Bothner <per@bothner.com>
  1819. * lang/Eval.java (evalBody): Set compilation state to BODY_PARSED
  1820. to avoid confusion if Compilation.process is called.
  1821. 2010-04-04 Per Bothner <per@bothner.com>
  1822. * ReplDocument.java: Change call to QueueReader.append so it also works
  1823. for version compiled when java.lang.CharSequence is unavailable.
  1824. * ReplPane.java: Likewise.
  1825. * standard/object.java (rewriteClassDef): Handle the case when
  1826. java.lang.CharSequence is unavailable - i.e. pre-Java4.
  1827. Also, improve location for an error message.
  1828. 2010-04-02 Per Bothner <per@bothner.com>
  1829. * standard/require.java (importDefinitions): Don't call
  1830. mustCompileHere, since import/require usually works when interpreting.
  1831. 2010-02-23 Per Bothner <per@bothner.com>
  1832. Re-write of "runFile", load, and interfaces for running/loading files
  1833. and modules from the command line or the Scheme load function.
  1834. Most importantly, handle running a class name on the command line,
  1835. and handle mutually-referring source files from command line.
  1836. * Shell.java: Bunch of stuff was moved here from load.java.
  1837. (checkCompiledZip, runFileOrClass, compileSource): New methods.
  1838. (runFile): Re-organized and changed interfaces.
  1839. * repl.java: Change calls to runFile to call runFileOrClass.
  1840. * standard/load.java: Move most of the logic to Shell.java.
  1841. * GuiConsole.java: Remove unneeded import.
  1842. 2010-02-21 Per Bothner <per@bothner.com>
  1843. * standard/require.java (importDefinitions): Get module classname
  1844. from the module ClassType, which is more robust.
  1845. 2010-02-10 Per Bothner <per@bothner.com>
  1846. * standard/let.java (rewrite): No longer allow a java.lang.String
  1847. as an identifier.
  1848. This fixes Savannah bug #28860 "Strings as identifiers".
  1849. * standard/define.java (scanForm): Likewise.
  1850. 2009-12-25 root <per@bothner.com>
  1851. * standard/Scheme.java (begin-for-syntax, define-for-syntax): New and
  1852. updated syntax.
  1853. 2009-12-13 Per Bothner <per@bothner.com>
  1854. * standard/define_class.java (scanForDefinitions): Set EARLY_INIT
  1855. on class Declaration.
  1856. * lang/Translator.java (exp2Type): If getTypeFor doesn't work,
  1857. try evaluating the type expression. The goal is handle
  1858. PACKAGE:TYPE, where PACKAGE may be an alias.
  1859. 2009-12-07 Per Bothner <per@bothner.com>
  1860. Change SyntaxForm to an interface, and use accessor methods.
  1861. A primary goal is to create a PairSyntaxForm class that is both a
  1862. Pair (so car and cdr work as in SRFI-72) and a SyntaxForm.
  1863. * lang/SyntaxForm.java: Change to an interface.
  1864. Most actual code moved to SyntaxForms.
  1865. (getDatum, getScope): New accessor methods.
  1866. * lang/SyntaxForms.java: New helper class containing static methods
  1867. and member classes.
  1868. Note the new classes are no longer Externalizable.
  1869. (class SimpleSyntaxForm): New member class, replaces old SyntaxForm.
  1870. Note the 'form' field was renamed to 'datum'.
  1871. (class PairSyntaxForm): New member class, for when the datum is a Pair.
  1872. * Makefile.am: Update according.
  1873. * lang/SyntaxRules.java: Update to use new accessors andstatic methods.
  1874. * lang/Lambda.java
  1875. * lang/SyntaxTemplate.java: Likewise.
  1876. * lang/SyntaxPattern.java: Likewise.
  1877. * lang/Makefile.am: Likewise.
  1878. * lang/Translator.java: Likewise.
  1879. * lang/Quote.java: Likewise.
  1880. * standard/define_syntax.java: Likewise.
  1881. * standard/IfFeature.java: Likewise.
  1882. * standard/export.java: Likewise.
  1883. * standard/syntax_case.java: Likewise.
  1884. * standard/let.java: Likewise.
  1885. * standard/module_name.java: Likewise.
  1886. * standard/define.java: Likewise.
  1887. * standard/define_alias.java: Likewise.
  1888. * standard/object.java: Likewise.
  1889. * standard/fluid_let.java: Likewise.
  1890. * standard/define_class.java: Likewise.
  1891. * standard/let_syntax.java: Likewise.
  1892. * standard/set_b.java: Likewise.
  1893. * standard/with_compile_options.java: Likewise.
  1894. 2009-12-04 Per Bothner <per@bothner.com>
  1895. * lang/Lambda.java (rewriteAttr): Fix processing of SyntaxForms.
  1896. This fixes Savannah bug #27042: "Bad interaction between syntax-rules
  1897. and call-with-values".
  1898. 2009-12-04 Per Bothner <per@bothner.com>
  1899. * lang/SyntaxForm.java (toString): Better debugging output.
  1900. * lang/TemplateScope.java (toString): Also print Syntax object.
  1901. 2009-12-02 Per Bothner <per@bothner.com>
  1902. * standard/object.java (rewriteClassDef): Fix previous change so we
  1903. don't get a NullPointerException on an unknown super-type.
  1904. 2009-12-01 Per Bothner <per@bothner.com>
  1905. * standard/Scheme.java (getNamedType): Change 'document' type.
  1906. * standard/define.java (scanForm): Don't setCanRead.
  1907. * standard/object.java (rewriteClassDef): Set HAS_SUBCLASS
  1908. on super-classes.
  1909. (rewriteClassDef): Move move error about *init* method in non-simple
  1910. classes to later, since we might optimize define-class to simple class.
  1911. 2009-11-25 Per Bothner <per@bothner.com>
  1912. * Shell.java (runFile): Better handlng of FileNotFoundException -
  1913. if it happens at run-tie at least we're only *somewhat* misleading.
  1914. 2009-11-04 Per Bothner <per@bothner.com>
  1915. * standard/thisRef.java (rewriteForm): Call different Declaration
  1916. constructor, for cleanliness. (It no longer makes a difference.)
  1917. * lang/Translator.java (scanForm): Set line-number if not yet set.
  1918. 2009-11-01 Per Bothner <per@bothner.com>
  1919. * standard/object.java (matchAccess): Re-write to support
  1920. volatile and transient flags, and also a list of multiple flags.
  1921. (scanClassDef): Update accordingly.
  1922. * lang/Translator.java (matchQuoted): New helper method.
  1923. * standard/define.java: Defer processing of type-specifier from
  1924. scanForm to rewriteForm.
  1925. 2009-10-31 Per Bothner <per@bothner.com>
  1926. * repl.java (processArgs): Use new Compile.MODULE_XXX flags.
  1927. Add new --module-nonstatic or --no-module-static to explicitly
  1928. set moduleStatic to Compilation.MODULE_NONSTATIC.
  1929. * standard/module_static.java( scanForDefinitions): Minor cleanup.
  1930. Add error if inconsistent module-static specifiers.
  1931. 2009-10-27 Per Bothner <per@bothner.com>
  1932. * standard/object.java (rewriteClassDef): Allow *init* methods for
  1933. non-simple class if CLASS_SPECIFIED.
  1934. 2009-10-18 Per Bothner <per@bothner.com>
  1935. * standard/Scheme.java (initScheme): Many bitwise-* functions
  1936. are now implemented by gnu.kawa.functions.BitwiseOp.
  1937. 2009-10-17 Per Bothner <per@bothner.com>
  1938. * Quote.java: Use statically-looked-up helper Methods, rather than
  1939. using Invoke.makeInvokeStatic, does does undesirable early getType().
  1940. Also, don't call kawa.lib.vector.$make$vactor$; call new
  1941. FVector.make.
  1942. 2009-10-09 Per Bothner <per@bothner.com>
  1943. * lang/Translator.java (rewrite): Handle ambiguity of 'object'
  1944. as both anonymous-class-constructor macro and type-specifier.
  1945. * standard/Scheme.java (checkDefaultBinding): When checking for array
  1946. type use rewrite so we find lexically-defined class.
  1947. * lang/Lambda.java: Defer from rewriteFormals and rewriteAttrs to
  1948. rewriteBody the exp2Type/getTypeFor calls for parameter and returns
  1949. types, allowing lexical lookkup and forward references of ClassExps.
  1950. 2009-09-30 Per Bothner <per@bothner.com>
  1951. * standard/location.java (rewrite): Use new maybeIndirectBinding method.
  1952. * standard/fluid_let.java (rewrite): Likewise.
  1953. * standard/define.java (scanForm): Only setCanWrite if immediate.
  1954. * standard/require.java (importDefinitions): Don't set no-longer-used
  1955. CREATE_FIELD_REFERENCE.
  1956. * standard/set_b.java (rewriteForm): Warn if setting imported variable.
  1957. * standard/Scheme.java (getTypeFor): Map gnu.math.DFloNum to
  1958. LangObjType.dflonumType.
  1959. 2009-09-29 Per Bothner <per@bothner.com>
  1960. * standard/Scheme.java (initScheme): Declare disassemble function.
  1961. * standard/Scheme.java (initScheme): resource-url is in
  1962. kawa.lib.misc_syntax, not kawa.lib.files.
  1963. 2009-09-26 Per Bothner <per@bothner.com>
  1964. * lang/Translator.java (finishModule): If generateMain when compiling a
  1965. module without an explicit EXPORT_SPECIFIED, assume nothing is exported.
  1966. 2009-09-20 Per Bothner <per@bothner.com>
  1967. * standard/IfFeature.java: Define string-normalize-unicode feature
  1968. if PreProcess name use:java.text.Normalizer enabled.
  1969. * standard/Scheme.java (initScheme): Update quotient, remainder, and
  1970. modulo, which are now implemented by DivideOp.
  1971. Add R6RS functions div, mod, div0, mod0, div-and-mod, div0-and-mod0.
  1972. * standard/Scheme.java: Map "number" to LangObjType.numericType.
  1973. * standard/Scheme.java: Define R6RS functions exact and inexact.
  1974. 2009-09-15 Per Bothner <per@bothner.com>
  1975. * repl.java (processArgs): Some code moved to ApplicationMainSupport.
  1976. (propertyFields): Moved to ApplicationMainSupport.
  1977. * standard/Scheme.java: Define process-command-line-assignments.
  1978. 2009-09-11 Per Bothner <per@bothner.com>
  1979. * standard/Scheme.java: Map "real" and "rational" types to new
  1980. LangObjType objects.
  1981. 2009-08-30 Per Bothner <per@bothner.com>
  1982. * standard/require.scm (featureMap): Update for SRFI-2.
  1983. * standard/ImportFromLibrary.java (SRFI97Map): Likewise.
  1984. 2009-08-27 Per Bothner <per@bothner.com>
  1985. * repl.java (exitIncrement, exitDecrement, exitCounter):
  1986. Move to gnu/expr/ModuleBody.java.
  1987. * ReplDecument.java: Update accordingly.
  1988. * repl.java (commandLineArgArray, commandLineArguments,
  1989. main body of setArgs): Move to gnu/expr/ModuleBody.java.
  1990. * standard/Scheme.java: Declare "command-line" and update "exit".
  1991. * standard/not.java: Moved/renamed to gnu/kawa/functions/Not.java.
  1992. * standard/Makefile.am: Update accordingly.
  1993. * standard/Scheme.java: Update accordingly.
  1994. * standard/Scheme.java: Update for some functions moved
  1995. to new file kawa/lib/misc_syntax.scm.
  1996. * standard/define_syntax.java (<clinit>): Declare that makeHygienic
  1997. and makeNonHygienic are side-effect-free.
  1998. 2009-08-23 Per Bothner <per@bothner.com>
  1999. * standard/object.java: Update for makeCoercion moved to Compilation
  2000. * lang/Lambda.java: Update for setCoercedReturnValue moved to LambdaExp.
  2001. 2009-08-13 Per Bothner <per@bothner.com>
  2002. * standard/require.java (featureMap): Add mappings for SRFI-13.
  2003. * standard/ImportFromLibrary.java (SRFI97Map): Likewise.
  2004. * standard/define.java (scanForm, rewriteForm): If --no-inline flag
  2005. is specified (i.e. if ! Compilation.inlineOk), treat
  2006. "(define (foo args) body)" same as
  2007. "(define foo (lambda (args) name: 'foo body)".
  2008. * standard/Scheme.java: Various functions in kawa/lib were moved around.
  2009. * lang/Translator.java: Update GetNamedPart -> CompileNamedPart.
  2010. * lang/Quote.java: Likewise.
  2011. 2009-08-12 Per Bothner <per@bothner.com>
  2012. * standard/set_b (rewriteForm): Update Setter.setterDecl.
  2013. 2009-08-10 Per Bothner <per@bothner.com>
  2014. One step in separating compilation from run-time classes.
  2015. * standard/SchemeCompilation.java: New class.
  2016. * standard/Makefile.am: Update accordingly.
  2017. * standard/Scheme.java (lambda, repl): Move to SchemeCompilation.
  2018. (initScheme): Bind LispLanguage.getNamedPartLocation, but don't
  2019. reference Translator fields while doing so.
  2020. * standard/try_catch.java: Update accordingly.
  2021. * standard/define.java: Likewise.
  2022. * standard/object.java: Likewise.
  2023. * lang/Translator.java (getNamedPartLocation): Remove field - it's
  2024. now in LispLanguage.
  2025. 2009-08-07 Per Bothner <per@bothner.com>
  2026. * lang/Translator.java (resolveModule): Move the forms resulting from
  2027. in import into their proper place.
  2028. (vectorReverse): New helper method.
  2029. * standard/require.java (importDefinitions): Also remember
  2030. size of forms stack.
  2031. * repl.java (processArgs): Update copyright year printed by --version.
  2032. 2009-07-10 Per Bothner <per@bothner.com>
  2033. * kawa/SyntaxPattern.java (literalIdentifierEq): Use equals,
  2034. not identity to compare literals.
  2035. Fixes Savannah bug #26993 "String literals in syntax-rules don't match".
  2036. 2009-07-04 Per Bothner <per@bothner.com>
  2037. * standard/Scheme.java (initScheme): Update for letrec.
  2038. 2009-06-28 Per Bothner <per@bothner.com>
  2039. * standard/callcc.java (inline): Update for new inlining framework.
  2040. 2009-06-02 Per Bothner <per@bothner.com>
  2041. * standard/Scheme.java (initScheme): Update for (rnrs unicode)
  2042. functions - add new methods, and move old functions to new library.
  2043. 2009-05-31 Per Bothner <per@bothner.com>
  2044. * standard/Scheme.java (initScheme): Add "regex" type name.
  2045. * standard/require.scm (featureMap): Add 'regex and 'pregexp.
  2046. 2009-05-22 Per Bothner <per@bothner.com>
  2047. * kawa/SyntaxPattern.java (translate, match, literalIdentifierEq):
  2048. More correct handling of syntactic hygiene for literals.
  2049. (literalIdentifierEq): Remove one method.
  2050. 2009-05-17 Per Bothner <per@bothner.com>
  2051. * lang/Eval.java (evalBody): Give module a unique name.
  2052. * standard/SchemeScriptEngineFactory.java: New class.
  2053. * standard/Makefile.am: Update accordingly.
  2054. 2009-05-15 Per Bothner <per@bothner.com>
  2055. * Shell.java (run): Use PARSE_FOR_EVAL rather than PARSE_IMMEDIATE.
  2056. * standard/load.java (loadSource): Likewise.
  2057. * standard/require.java (importDefinitions): Make sure to set
  2058. PARSE_IMMEDIATE (and hence Compilation.immediate) before we parse.
  2059. This is needed if there are cycles.
  2060. 2009-04-21 Per Bothner <per@bothner.com>
  2061. * kawa/require.java (importDefinitions): Don't call run on new
  2062. module if we're not makeRunnable on it.
  2063. * standard/module_name.java (scanForm): Change the value of the
  2064. module-name Declaration to be mainClass with type=java.lang.Class.
  2065. * standard/module_name.java (scanForm): If the module-name is a String,
  2066. treat it the same as FString, rather than the same a Symbol.
  2067. * standard/require.java (importDefinitions): Imported variable
  2068. should be read-only.
  2069. 2009-04-20 Per Bothner <per@bothner.com>
  2070. * lang/Translator.java (scanForm): Push and pop source position.
  2071. 2009-04-18 Per Bothner <per@bothner.com>
  2072. * standard/module_name.java (scanForm): Type of module name is now
  2073. Class, not ClassType.
  2074. * standard/define_alias.java (scanForDefinitions): If the aliasee
  2075. is a name for a ModuleExp or ClassExp, don't indirect.
  2076. 2009-03-15 Per Bothner <per@bothner.com>
  2077. * standard/export.java (export): New field.
  2078. * standard/Scheme.java: Allow 'export' as synonym for 'module-export'.
  2079. * standard/object.java (classNameKeyword): New constant.
  2080. (scanClassDef): Recognize class-name: specifier.
  2081. (rewriteClassDef): If class-name: was seen, set classNameSpecifier
  2082. in ClassExp.
  2083. 2009-03-13 Per Bothner <per@bothner.com>
  2084. * standard/ImportFromLibrary.java (SRFI97Map): New table.
  2085. (scanForDefinitions): Process SRFI-97-style SRFI library references.
  2086. * standard/ImportFromLibrary.java: New class, implements R6RS
  2087. import keyword.
  2088. * standard/Makefile.am: Update accordingly.
  2089. * standard/Scheme.java: Update - the implementations of various macros
  2090. were moved to different classes.
  2091. Add definition of 'import' keyword.
  2092. * standard/require.java (featureMap): Various updates.
  2093. (scanForDefinitions): Error if class not found.
  2094. (importDefinitions): Drop unused 'uri' parameter.
  2095. Add 'renamer' parameter.
  2096. * repl.java (processArgs): Don't run interactive shell if there are
  2097. command-line arguments after doing "something" (such as -f).
  2098. * lang/Translator.java (scanForm): If seeing (PART1:PART2 ...)
  2099. check if PART2 is a static Syntax object in class PART1.
  2100. This allows invoking Syntax/Macro objects without putting them
  2101. in the Scheme namespace.
  2102. 2009-03-10 Per Bothner <per@bothner.com>
  2103. * standard/Scheme.java (createReadTable): Do setFinalColonIsKeyword()
  2104. here, rather than in getLexer, since former was moved to ReadTable.
  2105. (getLexer): Can now be removed.
  2106. 2009-03-07 Per Bothner <per@bothner.com>
  2107. * lang/Scheme.java (getLexer): New method - call
  2108. setInitialColonIsKeyword.
  2109. 2009-03-01 Per Bothner <per@bothner.com>
  2110. * lang/Translator.java (<init>): Also pass NameLookup.
  2111. (resolveModule): Don't pop in immediate mode.
  2112. (check_if_Syntax): Generalize.
  2113. (exp2Type): Don't InlineCalls twice.
  2114. (rewrite_body): We skip dynamic declarations when creating body.
  2115. * lang/Eval.java (evalBody): Update for new Translator constructor.
  2116. 2009-02-06 Per Bothner <per@bothner.com>
  2117. * standard/Scheme.java: New function resource-url; removed resource-uri.
  2118. 2009-01-14 Per Bothner <per@bothner.com>
  2119. * standard/require.java (feature-map): Add 'android-defs.
  2120. 2008-12-29 Per Bothner <per@bothner.com>
  2121. * standard/callcc.java: Optimization to avoid temporary variable
  2122. if calling the continuation doesn't need to call a finally-clause.
  2123. (ExitThroughFinallyChecker): New helper class, extends ExpWalker.
  2124. 2008-12-27 Per Bothner <per@bothner.com>
  2125. * standard/callcc.java: Optimize the case when calls to the
  2126. continuation are lexically known and exits to the same uninlined
  2127. function. In this case we essentially make it a goto.
  2128. 2008-12-23 Per Bothner <per@bothner.com>
  2129. * standard/module_extends.java: Move setting of module's super-type
  2130. from rewriteForm to scanFrom, because if it is done in rewriteForm
  2131. it happens too late for Compilation's addMainClass.
  2132. * standard/module_name.java (scanForm): Allow plain name
  2133. without angle-brackets.
  2134. 2008-12-09 Per Bothner <per@bothner.com>
  2135. * repl.java (processArgs): Handle --target/-target arg.
  2136. 2008-11-21 Per Bothner <per@bothner.com>
  2137. * ReplDocument.java (class DocumentCloseListener): Add a listener
  2138. class so classes can get notified when document "closes".
  2139. This allowed us to close a window by typing #!eof in it.
  2140. (<init>): Call fireDocumentClosed when repl thread finishes.
  2141. (close): Do fireDocumentClosed.
  2142. * GuiConsole.java: Request notification when document is closed.
  2143. * ReplPane.java (removeNotify): New method.
  2144. * GuiConsole.java (main): Also do some initialization so it works
  2145. to call GuiConsole directly as an application or class.
  2146. 2008-11-11 Per Bothner <per@bothner.com>
  2147. More rebust support for multi-line input and type-ahead in GuiConsole.
  2148. * ReplDocument.java (write): Protect using SwingUtilities.invokeLater.
  2149. (checkingPendingInput) New method, to actually send pending input
  2150. to inferior reader.
  2151. (<init>): Have our QueueReader invoke checkingPendingInput.
  2152. * ReplPane.java (enter): Don't send entered text (if at end)
  2153. to inferior, instead let checkingPendingInput do it.
  2154. * GuiInPort.java (lineStart): Remove method.
  2155. 2008-11-10 Per Bothner <per@bothner.com>
  2156. * repl.java: If we have no Console, and no "active" arguments
  2157. were specified, default to a repl in a GuiConsole, just as we normally
  2158. default to a tty-based repl. We check using either the --no-console
  2159. flag (passed in by kawa.c) or the Java 6 System.console method.
  2160. * Shell.java (dontPrompt): Remove static.
  2161. (run): Don't use dontPrompt to determine interactivity.
  2162. * ReplDocument.java (deleteOldText): Don't redundantly adjust
  2163. outputMark and endMark. This fixes an IllegalArgumentException.
  2164. 2008-10-29 Per Bothner <per@bothner.com>
  2165. * ReplPane.java (enter): Minor simplification *and* optimization.
  2166. 2008-10-26 Per Bothner <per@bothner.com>
  2167. Inline call/cc (more coming).
  2168. * lang/CalledContinuation.java (ctx): Extra field.
  2169. (<init>): Pass and set ctx field.
  2170. * lang/Continuation.java (apply): Update accordingly.
  2171. (handleException, handleException$X): New methods, with logic taken
  2172. from callcc.apply.
  2173. * standard/callcc.java: Implement CanInline and Inlineable.
  2174. (apply): Use Continuation.handleException$X.
  2175. (canInline, inline, compile, getReturnType): New methods.
  2176. (class CompileTimeContinuation): New class - currently unused.
  2177. * lang/Translator.java (rewrite): Note that a variable reference
  2178. IS_SINGLE_VALUE.
  2179. 2008-09-08 Per Bothner <per@bothner.com>
  2180. * lang/Translator.java (finishModule): Don't call declareThis here,
  2181. since that creates a Scope and Variable before we even create the
  2182. corresponding CodeAttr, which if nothing else is ugly and confusing.
  2183. 2008-09-06 Per Bothner <per@bothner.com>
  2184. * lang/SyntaxForm.java (formDatum): Just use 'make' method.
  2185. 2008-07-17 Per Bothner <per@bothner.com>
  2186. * standard/Scheme.java (initScheme): Declare the various R6RS
  2187. bitwise- functions.
  2188. 2008-06-08 Per Bothner <per@bothner.com>
  2189. * lang/SyntaxTemplate.java: Use Pair.setCdrBackdoor, since the
  2190. pairs may be PairWithPosition.
  2191. * lang/Translator.java: Likewise.
  2192. * lang/Quote.java: Same issue, but instead create the list
  2193. back-to-front so we don't have to use setCdr.
  2194. 2008-06-01 Per Bothner <per@bothner.com>
  2195. * standard/Scheme.java: The standard functions string, vector, and list
  2196. are now LangObjType objects.
  2197. * lang/Lambda.java: Update to use new LangObjType.listType.
  2198. * lang/QuoteExp.java (makeInvokeMakeVector): New helper method.
  2199. Use renamed vector method.
  2200. 2008-05-20 Per Bothner <per@bothner.com>
  2201. * standard/map.java: Generalize so the 'procedure' can be any valid
  2202. argument to ApplyToArgs, not just a Procedure.
  2203. * standard/Scheme.java: Adjust for extra constructor args to map.
  2204. 2008-05-11 Per Bothner <per@bothner.com>
  2205. * standard/require.java (importDefinitions): Don't need to check
  2206. for non-null sourceName - that is now handled by checkCurrent.
  2207. * standard/require.java (importDefinitions): If private, continue
  2208. earlier - before checking to see if we need an instance handle.
  2209. 2008-04-30 Per Bothner <per@bothner.com>
  2210. * lang/Lambda.java (rewriteBody): Use new setCoercedReturnType
  2211. method in LambdaExp.java.
  2212. 2008-02-17 Per Bothner <per@bothner.com>
  2213. * lang/Translator.java (rewrite): If the location is in a field
  2214. loaded using a ZipLoader or ArrayClassLoader, we don't safely
  2215. generate code to reference it, except in immediate mode.
  2216. Fixes Bugzilla #22299: "function misnaming with moduleStatic > 0".
  2217. 2008-01-22 Per Bothner <per@bothner.com>
  2218. * standard/Scheme.java (apply): New static field. The "apply"
  2219. method now depends on applyToArgs.
  2220. 2008-01-16 Per Bothner <per@bothner.com>
  2221. * standard/map.java (inline): Handle new argsInlined parameter.
  2222. 2007-12-30 Per Bothner <per@bothner.com>
  2223. Move code out of ReplPane and GuiConsole, until ReplDocument.
  2224. This allows (in theory) the same repl to be viewed in multiple panes.
  2225. Also, use a custom ViewFactory to handle Viewable and Paintable,
  2226. so these can be displayed multiple times.
  2227. * ReplDocument.java: New class, extends DefaultStyledDocument.
  2228. * Makefile.am: Update accordingly.
  2229. * ReplPaneOutPort.java: Write to ReplDocument, with new handling
  2230. of Viewable and Paintable.
  2231. * GuiConsole.java" Move fields and methods to ReplDocument.
  2232. * ReplPane.java: Likewise.
  2233. (class ReplEditorKit): New class.
  2234. * GuiInPort.java: Update for moved fields and methods.
  2235. * standard/define_variable.java (scanForDefinitions): There doesn't
  2236. seem to be any reason to restrict define-variable to module-level.
  2237. 2007-11-05 Per Bothner <per@bothner.com>
  2238. * lang/Translator.java (rewrite): If we're not in immediate mode,
  2239. don't create the dummy '(module-instance)' variable. Fixes Savannah
  2240. bug 19725:" compile problems appearing in latest svn version".
  2241. 2007-11-04 Per Bothner <per@bothner.com>
  2242. * kawa/Shell.java (run): Create "session" ClassLoader.
  2243. 2007-11-02 Per Bothner <per@bothner.com>
  2244. * standard/Scheme.java (getNamedType, getType): The <integer> type
  2245. is handled by LangObjType.integerType.
  2246. 2007-09-08 Per Bothner <per@bothner.com>
  2247. * ReplPane.java (write): Move to ReplPaneOutPort.
  2248. * ReplPaneOutPort.java (area): Rename field to pane.
  2249. (print): Add support for Viewable and Paintable.
  2250. * MessageArea.java: Rename to ReplPane.java.
  2251. * TextAreaWriter.java: Rename to ReplPaneOutPort.java.
  2252. * GuiConsole.java, GuiInPort.java, Makefile.am: Update accordingly.
  2253. Convent -w flag to create Swing JTextPane rather than AWT TextArea.
  2254. * GuiConsole.java: Change to extend JFrame rather than Frame.
  2255. * TextAreaWriter.java: Extend OutPort rather than Writer.
  2256. (print): New method, to handle "writing" Components.
  2257. (class TextPaneWriter): New class, extends Writer.
  2258. * MessageArea.java: Extend JTextPane rather than TextArea.
  2259. Use various styles.
  2260. * GuiInPort.java (emitPrompt): New method.
  2261. 2007-09-02 Per Bothner <per@bothner.com>
  2262. * lang/AutoloadProcedure.java (load): Restore and fix support for
  2263. class naming a ModuleBody - needed for elisp autoloads.
  2264. 2007-06-10 Per Bothner <per@bothner.com>
  2265. * standard/Scheme.java (checkDefaultBinding): Fix infinite loop
  2266. when looking for missing unit.
  2267. Fixes Savannah bug #19991: '1_' causes OutOfMemoryError in interpreter.
  2268. 2007-06-10 Per Bothner <per@bothner.com>
  2269. Fix Savannah bug #19996 "load-relative trouble".
  2270. * standard/load.java (currentLoadPath): New ThreadLocal.
  2271. (apply): New overload to handle relative paths.
  2272. Make old method private.
  2273. (apply2): Update to use new apply.
  2274. * Shell.java (runFile): Likewise.
  2275. * standard/load.java (apply2): Better error message.
  2276. 2007-06-10 Per Bothner <per@bothner.com>
  2277. * standard/require.java: Update PreProcess state.
  2278. 2007-04-27 Per Bothner <per@bothner.com>
  2279. * standard/load.java (loadClassFile): Use Language.loadClass.
  2280. (loadCompiled): Update ClassMemberLocation.defineAll call.
  2281. 2007-04-26 Per Bothner <per@bothner.com>
  2282. * lang/Langda (rewriteFormals): Call namespaceResolve, twice.
  2283. 2007-04-25 Per Bothner <per@bothner.com>
  2284. * standard/require.java (scanForDefinitions): Update to pass ClassType
  2285. to ModuleInfo.find.
  2286. 2007-04-23 Per Bothner <per@bothner.com>
  2287. * standard/require.java (find(String)): Inline call to ModuleInfo's
  2288. find method - which has been removed.
  2289. 2007-04-19 Per Bothner <per@bothner.com>
  2290. * lang/Quote.java (expand_pair): Obvious trivial optimization.
  2291. 2007-04-03 Per Bothner <per@bothner.com>
  2292. * Translator.java (namespaceResolvePrefix): New method.
  2293. (namespaceResolve(Expression,Expresion)): Use it.
  2294. (namespaceResolve(Namespace,Expresion)): New method.
  2295. * Quote.java (makeSymbol): New static method.
  2296. (expand_pair): Handle `PREFIX:,EXPR.
  2297. 2007-04-01 Per Bothner <per@bothner.com>
  2298. * standard/Scheme.java (checkDefaultBinding): If name matches a
  2299. known package, return that Package.
  2300. 2007-03-31 Per Bothner <per@bothner.com>
  2301. * standard/Scheme.java (unitNamespace): New constant field.
  2302. (initScheme): Declare 'unit'.
  2303. (checkDefaultBinding): Check for symbol whose namespace
  2304. is XmlNamespace or unitNamespace.
  2305. Check for simple symbol matching quantity syntax.
  2306. (lookupBuiltin): Remove method.
  2307. * standard/let.java (rewrite): Do namespaceResolve.
  2308. * standard/define_unit.java (rewriteForm): Unit symbol now uses
  2309. Scheme.unitNamespace, rather than "$unit" suffix.
  2310. * lang/Translator.java (getNamedPartDecl): Moved from Scheme.java.
  2311. (getNamedPartLocation): New field.
  2312. (rewrite_pair): Handle getNamedPartDecl here. Most important change
  2313. is that we also do namespaceResolve.
  2314. * standard/Scheme.java (getNamedPartDecl): Moved to Translator.
  2315. (checkDefaultBinding): Handle symbols in XmlNamespace.
  2316. (makeApply): Don't handle getNamedPartDecl here.
  2317. 2007-03-19 Per Bothner <per@bothner.com>
  2318. * standard/object.java (scanClassDef): If interface:#f is specified
  2319. set CLASS_SPECIFIED flag.
  2320. (rewriteClassDef): ClassExp.setClassName was merged into setTypes.
  2321. * standard/Scheme.java (checkDefaultBinding): Demangle possible class
  2322. name if there is no '.' in name.
  2323. * standard/require.java (scanForDefinitions): Delegate class-name
  2324. lookup to Translator.require.
  2325. * lang/Translator.java (selfEvaluatingSymbol): Make public.
  2326. 2007-03-14 Per Bothner <per@bothner.com>
  2327. * standard/Scheme.java (lookupBuiltin): Remove handling of '<TYPE>'
  2328. here, since we want it handled by checkDefaultBinding.
  2329. (checkDefaultBinding): Use getNamedType rather than lookupType.
  2330. 2007-03-13 Per Bothner <per@bothner.com>
  2331. * lang/Translator.java (rewrite): Only call checkDefaultBinding
  2332. if there is no binidng in the dynamic Environment.
  2333. * Shell.java (printError): New static method.
  2334. (run, runString, runFile): Change return type to boolean
  2335. or Throwable to allow better error handling. Use printError.
  2336. * repl.java (processArgs): If error and not interactive, exit(-1).
  2337. * standard/load.java (loadSource): Change to new run API.
  2338. * standard/object.java (matchAccess, accessString): New static methods.
  2339. (scanClassDef): Handle interface: and access: class properties.
  2340. (rewriteClassDef): Skip over class-level keyword specifier pairs.
  2341. * standard/define_class.java (scanForDefinitions): Immediate error
  2342. is name missing or invalid. Resolve qualified (colon) names.
  2343. * Record.java (makeRecordType): Don't access acces_flags directly.
  2344. 2007-03-06 Per Bothner <per@bothner.com>
  2345. * lang/Lambda.java (rewriteBody): Canonicale BeginExp.
  2346. Don't coerce body if isAbstract().
  2347. * lang/Translator.java (rewrite): Handle literal #!abstract.
  2348. 2007-02-28 Per Bothner <per@bothner.com>
  2349. * Shell.java (dontPrompt): New global flag.
  2350. (run): Don't set inport's prompter if dontPrompt flag is set.
  2351. * repl.java (processArgs): Set Shell.dontPrompt if "--no-prompt".
  2352. * repl.java (internalError): New static method.
  2353. (processArgs): Use it in two places.
  2354. 2007-02-27 Per Bothner <per@bothner.com>
  2355. * standard/fluid_let.java (rewrite): Invoke Declaration.setCanWrite.
  2356. * standard/set_b.java (rewriteForm): Likewise.
  2357. 2007-02-26 Per Bothner <per@bothner.com>
  2358. * standard/map.java (inline): Update for new CanInline api.
  2359. 2007-02-25 Per Bothner <per@bothner.com>
  2360. * standard/Scheme.java (checkDefaultBinding): Map 'NAME?' to
  2361. '(lambda (x) (instance? x NAME)'.
  2362. * standard/Scheme.java (getNamedType): Remove redundant efinition
  2363. of 'java.lang.Object'.
  2364. * lang/Lambda.java (rewriteBody): Allow constant Type or Class in
  2365. deprecated '<TYPE> BODY' syntax.
  2366. 2007-02-19 Per Bothner <per@bothner.com>
  2367. * standard/define_class.java (scanForDefinitions): We now return
  2368. Class, rather than Type, in the define-simple-class case.
  2369. 2007-02-18 Per Bothner <per@bothner.com>
  2370. * lang/NamedException.java: Use Symbol rather than String for name.
  2371. * lang/Lambda.java: Names are now Symbol, not String.
  2372. Strings are now CharSequence rather than only FString.
  2373. * standard/define_autoload.java: Likewise.
  2374. * standard/define_unit.java: Likewise.
  2375. * lang/SyntaxPattern.java: Likewise.
  2376. * standard/require.java: Likewise. Assume fdecl's name is Symbol.
  2377. * lang/Translator.java: Likewise.
  2378. (matches): New method, handles Symbols.
  2379. * lang/SyntaxTemplate.java: Names are now Symbol, not String.
  2380. * lang/Record.java (typeFieldNames): Likewise.
  2381. * standard/define_syntax.java: Likewise.
  2382. * standard/throw_name.java: Likewise.
  2383. * standard/IfFeature.java: Likewise.
  2384. * standard/module_static.java: Likewise.
  2385. * standard/object.java: Likewise.
  2386. * standard/Scheme.java: Update for new type scheme.
  2387. * lang/Translator.java (rewrite): Handle rewriting class name to class
  2388. by calling checkDefaultBinding.
  2389. * standard/Scheme.java (initScheme, getType): Define class and type
  2390. types.
  2391. (checkDefaultBinding): New method.
  2392. (exp2Type): Simplify to use getTypeFor.
  2393. * standard/prim_method.java (rewrite): Use implemetation type.
  2394. * standard/define_alias.java (scanForDefinitions): \
  2395. Handle aliasing to a constant.
  2396. 2007-02-08 Per Bothner <per@bothner.com>
  2397. * standard/Scheme.java (getTypeFor): New method.
  2398. 2007-02-05 Per Bothner <per@bothner.com>
  2399. * standard/Scheme.java (initScheme): Declare define-syntax-case.
  2400. * lang/Translator.java (setCurrentScope): Change needed to handle
  2401. macros that generate macros. Not quite right, but an improvement.
  2402. 2007-01-31 Per Bothner <per@bothner.com>
  2403. * MessageArea.java (enter): Fix osme off-by-one issues.
  2404. Fixes (hopefully) Savannah bug #16313.
  2405. 2007-01-14 Per Bothner <per@bothner.com>
  2406. * lang/Record.java (makeRecordType): Use one-argument version of
  2407. loadClass, since 2-argument version is now protected.
  2408. 2007-01-09 Per Bothner <per@bothner.com>
  2409. * standard/Scheme.java: Add new path functions.
  2410. 2007-01-04 Per Bothner <per@bothner.com>
  2411. * standard/load.java (apply): Use Path's openInputStream.
  2412. * standard/require.java (lookupModuleFromSourcePath): Use Path's
  2413. resolve method, rather than URI_utils's.
  2414. 2007-01-03 Per Bothner <per@bothner.com>
  2415. * standard/require.java: Use ModuleInfo's new
  2416. getSourceAbsPathname method.
  2417. 2007-01-02 Per Bothner <per@bothner.com>
  2418. * standard/load.java (apply): Take Path parameter.
  2419. Simplify resolving to URL - let Path.toURL handle it.
  2420. (apply2): Update accordingly.
  2421. (loadCompiled): Take Path parameter.
  2422. * Shell.java (runFile): Update accordingly.
  2423. * standard/Scheme.java (initScheme): Change URI from function to type.
  2424. Other new types: path, filepath
  2425. New functions: path?, filepath?, URI?, absolute-path? path-scheme,
  2426. path-authority, path-user-info, path-host, path-port, path-path,
  2427. path-fragment, path-query.
  2428. (getNamedType): Remove URI - now "URI" rather than "<URI>".
  2429. (getTypeFor): Handle path, filepath, uri.
  2430. (createReadTable): URI is now define in LangObjType.
  2431. Add path and filepath.