lisp-xyz.scm 744 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
  3. ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
  4. ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
  5. ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
  6. ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
  7. ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
  8. ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
  9. ;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
  10. ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
  11. ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
  12. ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
  13. ;;; Copyright © 2018, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz>
  14. ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
  15. ;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
  16. ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
  17. ;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
  18. ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
  19. ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
  20. ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
  21. ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
  22. ;;; Copyright © 2020, 2021 Adam Kandur <rndd@tuta.io>
  23. ;;; Copyright © 2020, 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
  24. ;;; Copyright © 2021, 2022 Aurora <rind38@disroot.org>
  25. ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
  26. ;;; Copyright © 2021 André A. Gomes <andremegafone@gmail.com>
  27. ;;; Copyright © 2021, 2022 Cage <cage-dev@twistfold.it>
  28. ;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com>
  29. ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
  30. ;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
  31. ;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
  32. ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
  33. ;;; Copyright © 2021 Jacob MacDonald <jaccarmac@gmail.com>
  34. ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
  35. ;;;
  36. ;;; This file is part of GNU Guix.
  37. ;;;
  38. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  39. ;;; under the terms of the GNU General Public License as published by
  40. ;;; the Free Software Foundation; either version 3 of the License, or (at
  41. ;;; your option) any later version.
  42. ;;;
  43. ;;; GNU Guix is distributed in the hope that it will be useful, but
  44. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  45. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  46. ;;; GNU General Public License for more details.
  47. ;;;
  48. ;;; You should have received a copy of the GNU General Public License
  49. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  50. ;;; This file only contains Common Lisp libraries.
  51. ;;; Common Lisp compilers and tooling go to lisp.scm.
  52. ;;; Common Lisp applications should go to the most appropriate file,
  53. ;;; e.g. StumpWM is in wm.scm.
  54. (define-module (gnu packages lisp-xyz)
  55. #:use-module (gnu packages)
  56. #:use-module ((guix licenses) #:prefix license:)
  57. #:use-module (guix packages)
  58. #:use-module (guix download)
  59. #:use-module (guix git-download)
  60. #:use-module (guix hg-download)
  61. #:use-module (guix utils)
  62. #:use-module (guix build-system asdf)
  63. #:use-module (guix build-system gnu)
  64. #:use-module (guix build-system trivial)
  65. #:use-module (gnu packages base)
  66. #:use-module (gnu packages c)
  67. #:use-module (gnu packages compression)
  68. #:use-module (gnu packages databases)
  69. #:use-module (gnu packages enchant)
  70. #:use-module (gnu packages figlet)
  71. #:use-module (gnu packages file)
  72. #:use-module (gnu packages fonts)
  73. #:use-module (gnu packages fontutils)
  74. #:use-module (gnu packages game-development)
  75. #:use-module (gnu packages gl)
  76. #:use-module (gnu packages glib)
  77. #:use-module (gnu packages gnome)
  78. #:use-module (gnu packages gnupg)
  79. #:use-module (gnu packages gtk)
  80. #:use-module (gnu packages image)
  81. #:use-module (gnu packages imagemagick)
  82. #:use-module (gnu packages libevent)
  83. #:use-module (gnu packages libffi)
  84. #:use-module (gnu packages linux)
  85. #:use-module (gnu packages lisp)
  86. #:use-module (gnu packages lisp-check)
  87. #:use-module (gnu packages maths)
  88. #:use-module (gnu packages mp3)
  89. #:use-module (gnu packages mpi)
  90. #:use-module (gnu packages ncurses)
  91. #:use-module (gnu packages networking)
  92. #:use-module (gnu packages pkg-config)
  93. #:use-module (gnu packages python)
  94. #:use-module (gnu packages python-xyz)
  95. #:use-module (gnu packages readline)
  96. #:use-module (gnu packages sdl)
  97. #:use-module (gnu packages serialization)
  98. #:use-module (gnu packages sqlite)
  99. #:use-module (gnu packages statistics)
  100. #:use-module (gnu packages tcl)
  101. #:use-module (gnu packages tls)
  102. #:use-module (gnu packages video)
  103. #:use-module (gnu packages web)
  104. #:use-module (gnu packages webkit)
  105. #:use-module (gnu packages xdisorg)
  106. #:use-module (gnu packages xml)
  107. #:use-module (gnu packages xorg)
  108. #:use-module (ice-9 match)
  109. #:use-module (srfi srfi-1)
  110. #:use-module (srfi srfi-19))
  111. (define-public sbcl-alexandria
  112. (package
  113. (name "sbcl-alexandria")
  114. (version "1.4")
  115. (source
  116. (origin
  117. (method git-fetch)
  118. (uri (git-reference
  119. (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
  120. (commit (string-append "v" version))))
  121. (sha256
  122. (base32
  123. "0r1adhvf98h0104vq14q7y99h0hsa8wqwqw92h7ghrjxmsvz2z6l"))
  124. (file-name (git-file-name name version))))
  125. (build-system asdf-build-system/sbcl)
  126. (native-inputs
  127. (list sbcl-rt))
  128. (synopsis "Collection of portable utilities for Common Lisp")
  129. (description
  130. "Alexandria is a collection of portable utilities. It does not contain
  131. conceptual extensions to Common Lisp. It is conservative in scope, and
  132. portable between implementations.")
  133. (home-page "https://common-lisp.net/project/alexandria/")
  134. (license license:public-domain)))
  135. (define-public cl-alexandria
  136. (sbcl-package->cl-source-package sbcl-alexandria))
  137. (define-public ecl-alexandria
  138. (sbcl-package->ecl-package sbcl-alexandria))
  139. (define-public sbcl-bodge-utilities
  140. (let ((commit "6304bac4abe06d53579e2c0fc4437d14ff077d9f")
  141. (revision "1"))
  142. (package
  143. (name "sbcl-bodge-utilities")
  144. (version (git-version "1.0.0" revision commit))
  145. (source
  146. (origin
  147. (method git-fetch)
  148. (uri (git-reference
  149. (url "https://github.com/borodust/bodge-utilities")
  150. (commit commit)))
  151. (file-name (git-file-name "bodge-utilities" version))
  152. (sha256
  153. (base32 "1z1blj05q71vzh323qwyn9p3xs7v0mq2yhwfyzza5libp37wqm3c"))))
  154. (build-system asdf-build-system/sbcl)
  155. (inputs
  156. (list sbcl-alexandria
  157. sbcl-cffi
  158. sbcl-claw
  159. sbcl-dissect
  160. sbcl-local-time
  161. sbcl-log4cl
  162. sbcl-split-sequence
  163. sbcl-static-vectors
  164. sbcl-trivial-gray-streams))
  165. (home-page "https://github.com/borodust/bodge-utilities")
  166. (synopsis "Common Lisp utilities library for CL-BODGE")
  167. (description
  168. "This Common Lisp library provides utilities for the @emph{Bodge} library
  169. collection.")
  170. (license license:expat))))
  171. (define-public ecl-bodge-utilities
  172. (sbcl-package->ecl-package sbcl-bodge-utilities))
  173. (define-public cl-bodge-utilities
  174. (sbcl-package->cl-source-package sbcl-bodge-utilities))
  175. (define-public sbcl-bodge-queue
  176. (let ((commit "948c9a501dcd412689952d09eb7453ec2722336a")
  177. (revision "0"))
  178. (package
  179. (name "sbcl-bodge-queue")
  180. (version (git-version "0.0.0" revision commit))
  181. (source
  182. (origin
  183. (method git-fetch)
  184. (uri (git-reference
  185. (url "https://github.com/borodust/bodge-queue")
  186. (commit commit)))
  187. (file-name (git-file-name "bodge-queue" version))
  188. (sha256
  189. (base32 "148hjikqk8v2m30mj15xh89zni6szf9z3prav580qk9dqr8djjdr"))))
  190. (build-system asdf-build-system/sbcl)
  191. (native-inputs
  192. (list sbcl-fiveam))
  193. (home-page "https://github.com/borodust/bodge-queue")
  194. (synopsis "Simple queue for Common Lisp")
  195. (description "This Common Lisp library provides a simple FIFO
  196. implementation with no external dependencies.")
  197. (license license:expat))))
  198. (define-public cl-bodge-queue
  199. (sbcl-package->cl-source-package sbcl-bodge-queue))
  200. (define-public ecl-bodge-queue
  201. (sbcl-package->ecl-package sbcl-bodge-queue))
  202. (define-public sbcl-golden-utils
  203. (let ((commit "fe1898f9abbd302b0359f017637c063173cf73e1")
  204. (revision "3"))
  205. (package
  206. (name "sbcl-golden-utils")
  207. (version (git-version "0.0.0" revision commit))
  208. (home-page "https://github.com/mfiano/mfiano-utils")
  209. (source
  210. (origin
  211. (method git-fetch)
  212. (uri (git-reference
  213. (url home-page)
  214. (commit commit)))
  215. (file-name (git-file-name "golden-utils" version))
  216. (sha256
  217. (base32 "1ljc8yj32lmd1d60446rzl9m0r1ar15gdzacsf6blw1kny8xlrsr"))))
  218. (build-system asdf-build-system/sbcl)
  219. (inputs
  220. (list sbcl-alexandria))
  221. (synopsis "Common Lisp utility library")
  222. (description
  223. "This is a Common Lisp library providing various utilities.")
  224. (license license:expat))))
  225. (define-public ecl-golden-utils
  226. (sbcl-package->ecl-package sbcl-golden-utils))
  227. (define-public cl-golden-utils
  228. (sbcl-package->cl-source-package sbcl-golden-utils))
  229. (define-public sbcl-asdf-finalizers
  230. (let ((commit "7f537f6c598b662ae987c6acc268dd27c25977e0")
  231. (revision "1"))
  232. (package
  233. (name "sbcl-asdf-finalizers")
  234. (version (git-version "0.0.0" revision commit))
  235. (source
  236. (origin
  237. (method git-fetch)
  238. (uri (git-reference
  239. (url "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
  240. (commit commit)))
  241. (file-name (git-file-name name version))
  242. (sha256
  243. (base32 "1w56c9yjjydjshsgqxz57qlp2v3r4ilbisnsgiqphvxnhvd41y0v"))))
  244. (build-system asdf-build-system/sbcl)
  245. (native-inputs
  246. `(("fare-utils" ,sbcl-fare-utils)
  247. ("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
  248. (arguments
  249. `(#:asd-files '("asdf-finalizers.asd"
  250. "list-of.asd"
  251. "asdf-finalizers-test.asd")
  252. #:asd-systems '("asdf-finalizers"
  253. "list-of")))
  254. (home-page "https://gitlab.common-lisp.net/asdf/asdf-finalizers")
  255. (synopsis "Enforced calling of finalizers for Lisp code")
  256. (description "This library allows you to implement and enforce proper
  257. finalization of compile-time constructs while building Lisp source files.
  258. It produces two systems: asdf-finalizers and list-of.")
  259. (license license:expat))))
  260. (define-public ecl-asdf-finalizers
  261. (sbcl-package->ecl-package sbcl-asdf-finalizers))
  262. (define-public cl-asdf-finalizers
  263. (sbcl-package->cl-source-package sbcl-asdf-finalizers))
  264. (define-public sbcl-net.didierverna.asdf-flv
  265. (package
  266. (name "sbcl-net.didierverna.asdf-flv")
  267. (version "2.1")
  268. (source
  269. (origin
  270. (method git-fetch)
  271. (uri (git-reference
  272. (url "https://github.com/didierverna/asdf-flv")
  273. (commit (string-append "version-" version))))
  274. (file-name (git-file-name "asdf-flv" version))
  275. (sha256
  276. (base32 "1fi2y4baxan103jbg4idjddzihy03kwnj2mzbwrknw4d4x7xlgwj"))))
  277. (build-system asdf-build-system/sbcl)
  278. (synopsis "Common Lisp ASDF extension to provide support for file-local variables")
  279. (description "ASDF-FLV provides support for file-local variables through
  280. ASDF. A file-local variable behaves like @code{*PACKAGE*} and
  281. @code{*READTABLE*} with respect to @code{LOAD} and @code{COMPILE-FILE}: a new
  282. dynamic binding is created before processing the file, so that any
  283. modification to the variable becomes essentially file-local.
  284. In order to make one or several variables file-local, use the macros
  285. @code{SET-FILE-LOCAL-VARIABLE(S)}.")
  286. (home-page "https://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv")
  287. (license (license:non-copyleft
  288. "https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"
  289. "GNU All-Permissive License"))))
  290. (define-public cl-net.didierverna.asdf-flv
  291. (sbcl-package->cl-source-package sbcl-net.didierverna.asdf-flv))
  292. (define-public ecl-net.didierverna.asdf-flv
  293. (sbcl-package->ecl-package sbcl-net.didierverna.asdf-flv))
  294. (define-public sbcl-command-line-arguments
  295. (let ((commit "fbac862fb01c0e368141204f3f639920462c23fe")
  296. (revision "1"))
  297. (package
  298. (name "sbcl-command-line-arguments")
  299. (version (git-version "2.0.0" revision commit))
  300. (source
  301. (origin
  302. (method git-fetch)
  303. (uri (git-reference
  304. (url "https://github.com/fare/command-line-arguments")
  305. (commit commit)))
  306. (file-name (git-file-name name version))
  307. (sha256
  308. (base32 "054m1ikndzqf72mb9ajaa64136cwr3bgag4yfbi1574a9vq75mjq"))))
  309. (build-system asdf-build-system/sbcl)
  310. (home-page "https://github.com/fare/command-line-arguments")
  311. (synopsis "Trivial command-line argument parsing library for Common Lisp")
  312. (description "This is a library to abstract away the parsing of
  313. Unix-style command-line arguments. Use it in conjunction with asdf:program-op
  314. or cl-launch for portable processing of command-line arguments.")
  315. (license license:expat))))
  316. (define-public ecl-command-line-arguments
  317. (sbcl-package->ecl-package sbcl-command-line-arguments))
  318. (define-public cl-command-line-arguments
  319. (sbcl-package->cl-source-package sbcl-command-line-arguments))
  320. (define-public sbcl-cl-irc
  321. (let ((commit "963823537c7bfcda2edd4c44d172192da6722175")
  322. (revision "0"))
  323. (package
  324. (name "sbcl-cl-irc")
  325. (version (git-version "0.9.2" revision commit))
  326. (source
  327. (origin
  328. (method git-fetch)
  329. (uri (git-reference
  330. (url "https://salsa.debian.org/common-lisp-team/cl-irc.git")
  331. (commit commit)))
  332. (file-name (git-file-name "cl-irc" version))
  333. (sha256
  334. (base32 "1b3nqbb4pj377lxl47rfgrs82pidadnrc65l48bk553c2f59b52w"))))
  335. (build-system asdf-build-system/sbcl)
  336. (native-inputs
  337. ;; Tests only.
  338. (list sbcl-rt))
  339. (inputs
  340. `(("cl+ssl" ,sbcl-cl+ssl)
  341. ("flexi-streams" ,sbcl-flexi-streams)
  342. ("split-sequence" ,sbcl-split-sequence)
  343. ("usocket" ,sbcl-usocket)))
  344. (arguments
  345. `(#:asd-systems '("cl-irc") ;; Some inexisting "c" system is
  346. ;; found by guix otherwise.
  347. #:asd-files '("cl-irc.asd")
  348. #:test-asd-file "test/cl-irc-test.asd"))
  349. (synopsis "IRC client library for Common Lisp")
  350. (description "@code{cl-irc} is a Common Lisp IRC client library that
  351. features (partial) DCC, CTCP and all relevant commands from the IRC
  352. RFCs (RFC2810, RFC2811 and RFC2812).
  353. Features:
  354. @itemize
  355. @item implements all commands in the RFCs
  356. @item extra convenience commands such as op/deop, ban, ignore, etc.
  357. @item partial DCC SEND/CHAT support
  358. @item event driven model with hooks makes interfacing easy
  359. @item the user can keep multiple connections
  360. @item all CTCP commands
  361. @end itemize\n")
  362. (home-page "https://common-lisp.net/project/cl-irc/")
  363. (license license:bsd-2))))
  364. (define-public cl-irc
  365. (sbcl-package->cl-source-package sbcl-cl-irc))
  366. (define-public ecl-cl-irc
  367. (sbcl-package->ecl-package sbcl-cl-irc))
  368. (define-public sbcl-trivial-timeout
  369. (let ((commit "feb869357f40f5e109570fb40abad215fb370c6c")
  370. (revision "1"))
  371. (package
  372. (name "sbcl-trivial-timeout")
  373. (version (git-version "0.1.5" revision commit))
  374. (source
  375. (origin
  376. (method git-fetch)
  377. (uri (git-reference
  378. (url "https://github.com/gwkkwg/trivial-timeout/")
  379. (commit commit)))
  380. (file-name (git-file-name "trivial-timeout" version))
  381. (sha256
  382. (base32 "1kninxwvvih9nhh7a9y8lfgi7pdr76675y1clw4ss17vz8fbim5p"))))
  383. (build-system asdf-build-system/sbcl)
  384. (native-inputs
  385. (list sbcl-lift))
  386. (arguments
  387. ;; NOTE: (Sharlatan-20210202T231437+0000): Due to the age of this library
  388. ;; tests use some deprecated functionality and keep failing.
  389. `(#:tests? #f))
  390. (home-page "https://github.com/gwkkwg/trivial-timeout/")
  391. (synopsis "Timeout library for Common Lisp")
  392. (description
  393. "This library provides an OS and implementation independent access to
  394. timeouts.")
  395. (license license:expat))))
  396. (define-public ecl-trivial-timeout
  397. (sbcl-package->ecl-package sbcl-trivial-timeout))
  398. (define-public cl-trivial-timeout
  399. (sbcl-package->cl-source-package sbcl-trivial-timeout))
  400. (define-public sbcl-bordeaux-threads
  401. (package
  402. (name "sbcl-bordeaux-threads")
  403. (version "0.8.8")
  404. (source (origin
  405. (method git-fetch)
  406. (uri (git-reference
  407. (url "https://github.com/sionescu/bordeaux-threads")
  408. (commit (string-append "v" version))))
  409. (sha256
  410. (base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
  411. (file-name
  412. (git-file-name "bordeaux-threads" version))))
  413. (inputs (list sbcl-alexandria))
  414. (native-inputs (list sbcl-fiveam))
  415. (build-system asdf-build-system/sbcl)
  416. (synopsis "Portable shared-state concurrency library for Common Lisp")
  417. (description "BORDEAUX-THREADS is a proposed standard for a minimal
  418. MP/Threading interface. It is similar to the CLIM-SYS threading and lock
  419. support.")
  420. (home-page "https://common-lisp.net/project/bordeaux-threads/")
  421. (license license:x11)))
  422. (define-public cl-bordeaux-threads
  423. (sbcl-package->cl-source-package sbcl-bordeaux-threads))
  424. (define-public ecl-bordeaux-threads
  425. (sbcl-package->ecl-package sbcl-bordeaux-threads))
  426. (define-public sbcl-trivial-gray-streams
  427. (let ((revision "1")
  428. (commit "2b3823edbc78a450db4891fd2b566ca0316a7876"))
  429. (package
  430. (name "sbcl-trivial-gray-streams")
  431. (version (git-version "2.0" revision commit))
  432. (source
  433. (origin
  434. (method git-fetch)
  435. (uri
  436. (git-reference
  437. (url "https://github.com/trivial-gray-streams/trivial-gray-streams")
  438. (commit commit)))
  439. (sha256
  440. (base32 "1hipqwwd5ylskybd173rvlsk7ds4w4nq1cmh9952ivm6dgh7pwzn"))
  441. (file-name (git-file-name "cl-trivial-gray-streams" version))))
  442. (build-system asdf-build-system/sbcl)
  443. (synopsis "Compatibility layer for Gray streams implementations")
  444. (description "Gray streams is an interface proposed for inclusion with
  445. ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
  446. popular CL implementations implement it. This package provides an extremely
  447. thin compatibility layer for gray streams.")
  448. (home-page "https://www.cliki.net/trivial-gray-streams")
  449. (license license:x11))))
  450. (define-public cl-trivial-gray-streams
  451. (sbcl-package->cl-source-package sbcl-trivial-gray-streams))
  452. (define-public ecl-trivial-gray-streams
  453. (sbcl-package->ecl-package sbcl-trivial-gray-streams))
  454. (define-public sbcl-flexi-streams
  455. (package
  456. (name "sbcl-flexi-streams")
  457. (version "1.0.19")
  458. (source
  459. (origin
  460. (method git-fetch)
  461. (uri (git-reference
  462. (url "https://github.com/edicl/flexi-streams")
  463. (commit (string-append "v" version))))
  464. (file-name (git-file-name "flexi-streams" version))
  465. (sha256
  466. (base32 "0v7lh4nrldzczd4mwylvmxfdxk7wfsli24iv1axd6mkb833llr70"))))
  467. (build-system asdf-build-system/sbcl)
  468. (arguments
  469. `(#:phases
  470. (modify-phases %standard-phases
  471. (add-after 'unpack 'make-git-checkout-writable
  472. (lambda _
  473. (for-each make-file-writable (find-files "."))
  474. #t)))))
  475. (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
  476. (synopsis "Implementation of virtual bivalent streams for Common Lisp")
  477. (description "Flexi-streams is an implementation of \"virtual\" bivalent
  478. streams that can be layered atop real binary or bivalent streams and that can
  479. be used to read and write character data in various single- or multi-octet
  480. encodings which can be changed on the fly. It also supplies in-memory binary
  481. streams which are similar to string streams.")
  482. (home-page "http://weitz.de/flexi-streams/")
  483. (license license:bsd-3)))
  484. (define-public cl-flexi-streams
  485. (sbcl-package->cl-source-package sbcl-flexi-streams))
  486. (define-public ecl-flexi-streams
  487. (sbcl-package->ecl-package sbcl-flexi-streams))
  488. (define-public sbcl-cl-abnf
  489. ;; There are no releases
  490. (let ((commit "ba1fbb104dedbdaddb1ef93d2e4da711bd96cd70")
  491. (revision "1"))
  492. (package
  493. (name "sbcl-cl-abnf")
  494. (version (git-version "0.0.0" revision commit))
  495. (source
  496. (origin
  497. (method git-fetch)
  498. (uri (git-reference
  499. (url "https://github.com/dimitri/cl-abnf")
  500. (commit commit)))
  501. (file-name (git-file-name "cl-abnf" version))
  502. (sha256
  503. (base32 "0f09nsndxa90acm71zd4qdnp40v705a4sqm04mnv9x76h6dlggmz"))))
  504. (build-system asdf-build-system/sbcl)
  505. (inputs
  506. `(("cl-ppcre" ,sbcl-cl-ppcre)
  507. ("esrap" ,sbcl-esrap)))
  508. (arguments
  509. `(#:asd-systems '("abnf")))
  510. (home-page "https://github.com/dimitri/cl-abnf")
  511. (synopsis "ABNF parser generator for Common Lisp")
  512. (description "This Common Lisp library implements a parser generator for
  513. the ABNF grammar format as described in RFC2234. The generated parser is a
  514. regular expression scanner provided by the cl-ppcre lib, which means that we
  515. can't parse recursive grammar definition. One such definition is the ABNF
  516. definition as given by the RFC. Fortunately, as you have this lib, you most
  517. probably don't need to generate another parser to handle that particular ABNF
  518. grammar.")
  519. (license license:expat))))
  520. (define-public cl-abnf
  521. (sbcl-package->cl-source-package sbcl-cl-abnf))
  522. (define-public ecl-cl-abnf
  523. (sbcl-package->ecl-package sbcl-cl-abnf))
  524. (define-public sbcl-cl-ppcre
  525. (package
  526. (name "sbcl-cl-ppcre")
  527. (version "2.1.1")
  528. (source
  529. (origin
  530. (method git-fetch)
  531. (uri (git-reference
  532. (url "https://github.com/edicl/cl-ppcre")
  533. (commit (string-append "v" version))))
  534. (file-name (git-file-name "cl-ppcre" version))
  535. (sha256
  536. (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
  537. (build-system asdf-build-system/sbcl)
  538. (native-inputs
  539. (list sbcl-flexi-streams))
  540. (arguments
  541. `(#:phases
  542. (modify-phases %standard-phases
  543. (add-after 'unpack 'disable-ppcre-unicode
  544. ;; cl-ppcre and cl-ppcre-unicode are put in different packages
  545. ;; to work around the circular dependency between edicl/cl-ppcre
  546. ;; and edicl/cl-unicode.
  547. (lambda _
  548. (delete-file "cl-ppcre-unicode.asd")
  549. #t)))))
  550. (synopsis "Portable regular expression library for Common Lisp")
  551. (description "CL-PPCRE is a portable regular expression library for Common
  552. Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
  553. compatible with ANSI-compliant Common Lisp implementations.")
  554. (home-page "http://weitz.de/cl-ppcre/")
  555. (license license:bsd-2)))
  556. (define-public cl-ppcre
  557. (sbcl-package->cl-source-package sbcl-cl-ppcre))
  558. (define-public ecl-cl-ppcre
  559. (sbcl-package->ecl-package sbcl-cl-ppcre))
  560. (define-public sbcl-parse
  561. (let ((commit "2351ee78acac065fcf10b8713d3f404e2e910786")
  562. (revision "1"))
  563. (package
  564. (name "sbcl-parse")
  565. (version (git-version "1.0" revision commit))
  566. (source
  567. (origin
  568. (method git-fetch)
  569. (uri (git-reference
  570. (url "https://github.com/massung/parse")
  571. (commit commit)))
  572. (file-name (git-file-name "parse" version))
  573. (sha256
  574. (base32 "0l18yabyh7jizm5lgvra0jxi8s1cfwghidi6ix1pyixjkdbjlmvy"))))
  575. (build-system asdf-build-system/sbcl)
  576. (home-page "https://github.com/massung/parse")
  577. (synopsis "Monadic parsing for Common Lisp")
  578. (description
  579. "PARSE is a simple token parsing library for Common Lisp.")
  580. (license license:asl2.0))))
  581. (define-public ecl-parse
  582. (sbcl-package->ecl-package sbcl-parse))
  583. (define-public cl-parse
  584. (sbcl-package->cl-source-package sbcl-parse))
  585. (define-public sbcl-re
  586. (let ((commit "cfbc1f482970221e80d445080a188fd5c755cd2c")
  587. (revision "1"))
  588. (package
  589. (name "sbcl-re")
  590. (version (git-version "1.0" revision commit))
  591. (source
  592. (origin
  593. (method git-fetch)
  594. (uri (git-reference
  595. (url "https://github.com/massung/re")
  596. (commit commit)))
  597. (file-name (git-file-name "re" version))
  598. (sha256
  599. (base32 "1y2gq2sckspnq8118bix55p2j43dk9qn3p8a2rplp1ip2qxqbb1i"))))
  600. (build-system asdf-build-system/sbcl)
  601. (inputs
  602. (list sbcl-parse))
  603. (home-page "https://github.com/massung/re")
  604. (synopsis "Lua-style Pattern Matching for Common Lisp")
  605. (description
  606. "RE is a small, portable, lightweight, and quick, regular
  607. expression library for Common Lisp. It is a non-recursive, backtracing VM.")
  608. (license license:asl2.0))))
  609. (define-public ecl-re
  610. (sbcl-package->ecl-package sbcl-re))
  611. (define-public cl-re
  612. (sbcl-package->cl-source-package sbcl-re))
  613. (define-public sbcl-ubiquitous
  614. (let ((commit "35eb7bd9e1b3daee1705f6b41260775180cce8af")
  615. (revision "1"))
  616. (package
  617. (name "sbcl-ubiquitous")
  618. (version (git-version "2.0.0" revision commit))
  619. (source
  620. (origin
  621. (method git-fetch)
  622. (uri (git-reference
  623. (url "https://github.com/Shinmera/ubiquitous")
  624. (commit commit)))
  625. (file-name (git-file-name "ubiquitous" version))
  626. (sha256
  627. (base32 "1xlkaqmjcpkiv2xl2s2pvvrv976dlc846wm16s1lj62iy1315i49"))))
  628. (build-system asdf-build-system/sbcl)
  629. (inputs
  630. `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
  631. (arguments
  632. '(#:asd-systems '("ubiquitous"
  633. "ubiquitous-concurrent")))
  634. (home-page "https://shinmera.github.io/ubiquitous/")
  635. (synopsis "Application configuration mechanism for Common Lisp")
  636. (description
  637. "@code{UBIQUITOUS} is a very easy-to-use library for persistent
  638. configuration storage. It automatically takes care of finding a suitable place
  639. to save your data, and provides simple functions to access and modify the data
  640. within.")
  641. (license license:zlib))))
  642. (define-public ecl-ubiquitous
  643. (sbcl-package->ecl-package sbcl-ubiquitous))
  644. (define-public cl-ubiquitous
  645. (sbcl-package->cl-source-package sbcl-ubiquitous))
  646. (define-public sbcl-uax-15
  647. (package
  648. (name "sbcl-uax-15")
  649. (version "0.1.1")
  650. (source
  651. (origin
  652. (method git-fetch)
  653. (uri (git-reference
  654. (url "https://github.com/sabracrolleton/uax-15")
  655. (commit (string-append "v" version))))
  656. (file-name (git-file-name "uax-15" version))
  657. (sha256
  658. (base32 "0p2ckw7mzxhwa9vbwj2q2dzayz9dl94d9yqd2ynp0pc5v8i0n2fr"))))
  659. (build-system asdf-build-system/sbcl)
  660. (arguments
  661. `(#:asd-systems
  662. '("uax-15")))
  663. (native-inputs
  664. (list sbcl-fiveam))
  665. (inputs
  666. `(("cl-ppcre" ,sbcl-cl-ppcre)
  667. ("split-sequence" ,sbcl-split-sequence)))
  668. (home-page "https://github.com/sabracrolleton/uax-15")
  669. (synopsis "Common Lisp implementation of unicode normalization functions")
  670. (description
  671. "This package provides supports for unicode normalization, RFC8264 and
  672. RFC7564.")
  673. (license license:expat)))
  674. (define-public cl-uax-15
  675. (sbcl-package->cl-source-package sbcl-uax-15))
  676. (define-public ecl-uax-15
  677. (sbcl-package->ecl-package sbcl-uax-15))
  678. (define-public sbcl-cl-unicode
  679. (package
  680. (name "sbcl-cl-unicode")
  681. (version "0.1.6")
  682. (source (origin
  683. (method git-fetch)
  684. (uri (git-reference
  685. (url "https://github.com/edicl/cl-unicode")
  686. (commit (string-append "v" version))))
  687. (file-name (git-file-name name version))
  688. (sha256
  689. (base32
  690. "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
  691. (build-system asdf-build-system/sbcl)
  692. (native-inputs
  693. (list sbcl-flexi-streams))
  694. (inputs
  695. (list sbcl-cl-ppcre))
  696. (home-page "http://weitz.de/cl-unicode/")
  697. (synopsis "Portable Unicode library for Common Lisp")
  698. (description "CL-UNICODE is a portable Unicode library Common Lisp, which
  699. is compatible with perl. It is pretty fast, thread-safe, and compatible with
  700. ANSI-compliant Common Lisp implementations.")
  701. (license license:bsd-2)))
  702. (define-public ecl-cl-unicode
  703. (sbcl-package->ecl-package sbcl-cl-unicode))
  704. (define-public cl-unicode
  705. (sbcl-package->cl-source-package sbcl-cl-unicode))
  706. (define-public sbcl-cl-ppcre-unicode
  707. (package (inherit sbcl-cl-ppcre)
  708. (name "sbcl-cl-ppcre-unicode")
  709. (inputs
  710. (list sbcl-cl-ppcre sbcl-cl-unicode))
  711. (arguments
  712. `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
  713. #:phases
  714. (modify-phases %standard-phases
  715. (add-after 'unpack 'disable-ppcre
  716. ;; cl-ppcre and cl-ppcre-unicode are put in different packages
  717. ;; to work around the circular dependency between edicl/cl-ppcre
  718. ;; and edicl/cl-unicode.
  719. (lambda _
  720. (delete-file "cl-ppcre.asd")
  721. #t)))))))
  722. (define-public cl-ppcre-unicode
  723. (sbcl-package->cl-source-package sbcl-cl-ppcre-unicode))
  724. (define-public ecl-cl-ppcre-unicode
  725. (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
  726. (define-public sbcl-zpb-ttf
  727. (package
  728. (name "sbcl-zpb-ttf")
  729. (version "1.0.4")
  730. (source
  731. (origin
  732. (method git-fetch)
  733. (uri (git-reference
  734. (url "https://github.com/xach/zpb-ttf")
  735. (commit (string-append "release-" version))))
  736. (file-name (git-file-name "cl-zpb-ttf" version))
  737. (sha256
  738. (base32 "1ziwlfys15m95hh5c54g3xv78vjxadd6qi9zf9kvd2bv70qsixqk"))))
  739. (build-system asdf-build-system/sbcl)
  740. (home-page "https://github.com/xach/zpb-ttf")
  741. (synopsis "TrueType font file access for Common Lisp")
  742. (description
  743. "ZPB-TTF is a TrueType font file parser that provides an interface for
  744. reading typographic metrics, glyph outlines, and other information from the
  745. file.")
  746. (license license:bsd-2)))
  747. (define-public ecl-zpb-ttf
  748. (sbcl-package->ecl-package sbcl-zpb-ttf))
  749. (define-public cl-zpb-ttf
  750. (sbcl-package->cl-source-package sbcl-zpb-ttf))
  751. (define-public sbcl-cl-vectors
  752. (package
  753. (name "sbcl-cl-vectors")
  754. (version "0.1.5")
  755. (source
  756. (origin
  757. (method url-fetch)
  758. (uri (string-append "http://projects.tuxee.net/cl-vectors/"
  759. "files/cl-vectors-" version ".tar.gz"))
  760. (sha256
  761. (base32
  762. "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
  763. (build-system asdf-build-system/sbcl)
  764. (inputs
  765. `(("zpb-ttf" ,sbcl-zpb-ttf)))
  766. (arguments
  767. '(#:asd-systems '("cl-vectors"
  768. "cl-paths-ttf")))
  769. (home-page "http://projects.tuxee.net/cl-vectors/")
  770. (synopsis "Create, transform and render anti-aliased vectorial paths")
  771. (description
  772. "This is a pure Common Lisp library to create, transform and render
  773. anti-aliased vectorial paths.")
  774. (license license:expat)))
  775. (define-public ecl-cl-vectors
  776. (sbcl-package->ecl-package sbcl-cl-vectors))
  777. (define-public cl-vectors
  778. (sbcl-package->cl-source-package sbcl-cl-vectors))
  779. (define-public sbcl-spatial-trees
  780. ;; There have been no releases.
  781. (let ((commit "81fdad0a0bf109c80a53cc96eca2e093823400ba")
  782. (revision "1"))
  783. (package
  784. (name "sbcl-spatial-trees")
  785. (version (git-version "0" revision commit))
  786. (source
  787. (origin
  788. (method git-fetch)
  789. (uri (git-reference
  790. (url "https://github.com/rpav/spatial-trees")
  791. (commit commit)))
  792. (file-name (git-file-name name version))
  793. (sha256
  794. (base32
  795. "11rhc6h501dwcik2igkszz7b9n515cr99m5pjh4r2qfwgiri6ysa"))))
  796. (build-system asdf-build-system/sbcl)
  797. (arguments
  798. '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
  799. #:test-asd-file "spatial-trees.test.asd"))
  800. (native-inputs
  801. (list sbcl-fiveam))
  802. (home-page "https://github.com/rpav/spatial-trees")
  803. (synopsis "Dynamic index data structures for spatially-extended data")
  804. (description
  805. "Spatial-trees is a set of dynamic index data structures for
  806. spatially-extended data.")
  807. (license license:bsd-3))))
  808. (define-public ecl-spatial-trees
  809. (sbcl-package->ecl-package sbcl-spatial-trees))
  810. (define-public cl-spatial-trees
  811. (sbcl-package->cl-source-package sbcl-spatial-trees))
  812. (define-public sbcl-flexichain
  813. ;; There are no releases.
  814. (let ((commit "9af644a6323f303a936a391b956babcbfe7b0c67")
  815. (revision "2"))
  816. (package
  817. (name "sbcl-flexichain")
  818. (version (git-version "1.5.1" revision commit))
  819. (source
  820. (origin
  821. (method git-fetch)
  822. (uri (git-reference
  823. (url "https://github.com/robert-strandh/Flexichain")
  824. (commit commit)))
  825. (file-name (git-file-name "cl-flexichain" version))
  826. (sha256
  827. (base32 "1ivkffnkc1iqmpl1p1rgyfbbgjmjcid4iszvdql1jjz324lq94g6"))))
  828. (build-system asdf-build-system/sbcl)
  829. (inputs
  830. (list sbcl-trivial-garbage))
  831. (home-page "https://github.com/robert-strandh/Flexichain.git")
  832. (synopsis "Dynamically add elements to or remove them from sequences")
  833. (description
  834. "This package provides an implementation of the flexichain protocol,
  835. allowing client code to dynamically add elements to, and delete elements from
  836. a sequence (or chain) of such elements.")
  837. (license license:lgpl2.1+))))
  838. (define-public ecl-flexichain
  839. (sbcl-package->ecl-package sbcl-flexichain))
  840. (define-public cl-flexichain
  841. (sbcl-package->cl-source-package sbcl-flexichain))
  842. (define-public sbcl-cl-pdf
  843. (let ((commit "f57905e0b5adb365d611a912613cee70d78d20d8")
  844. (revision "2"))
  845. (package
  846. (name "sbcl-cl-pdf")
  847. (version (git-version "2.0.0" revision commit))
  848. (source
  849. (origin
  850. (method git-fetch)
  851. (uri (git-reference
  852. (url "https://github.com/mbattyani/cl-pdf")
  853. (commit commit)))
  854. (file-name (git-file-name "cl-pdf" version))
  855. (sha256
  856. (base32 "0ir9xyj10lyp8mwb3n2pbhnwv0jx0ph1xlhh32sfgalk3bz0ms58"))))
  857. (build-system asdf-build-system/sbcl)
  858. (inputs
  859. (list sbcl-iterate sbcl-zpb-ttf))
  860. (arguments
  861. `(#:asd-systems '("cl-pdf" "cl-pdf-parser")))
  862. (home-page "https://github.com/mbattyani/cl-pdf")
  863. (synopsis "Common Lisp library for generating PDF files")
  864. (description
  865. "CL-PDF is a cross-platform Common Lisp library for generating PDF
  866. files.")
  867. (license license:bsd-2))))
  868. (define-public ecl-cl-pdf
  869. (sbcl-package->ecl-package sbcl-cl-pdf))
  870. (define-public cl-pdf
  871. (sbcl-package->cl-source-package sbcl-cl-pdf))
  872. (define-public sbcl-clx
  873. (package
  874. (name "sbcl-clx")
  875. (version "0.7.5")
  876. (source
  877. (origin
  878. (method git-fetch)
  879. (uri
  880. (git-reference
  881. (url "https://github.com/sharplispers/clx")
  882. (commit version)))
  883. (sha256
  884. (base32
  885. "1vi67z9hpj5rr4xcmfbfwzmlcc0ah7hzhrmfid6lqdkva238v2wf"))
  886. (file-name (string-append "clx-" version))))
  887. (build-system asdf-build-system/sbcl)
  888. (native-inputs
  889. (list sbcl-fiasco))
  890. (home-page "https://www.cliki.net/portable-clx")
  891. (synopsis "X11 client library for Common Lisp")
  892. (description "CLX is an X11 client library for Common Lisp. The code was
  893. originally taken from a CMUCL distribution, was modified somewhat in order to
  894. make it compile and run under SBCL, then a selection of patches were added
  895. from other CLXes around the net.")
  896. (license license:x11)))
  897. (define-public cl-clx
  898. (sbcl-package->cl-source-package sbcl-clx))
  899. (define-public ecl-clx
  900. (sbcl-package->ecl-package sbcl-clx))
  901. (define-public sbcl-clx-truetype
  902. (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
  903. (revision "1"))
  904. (package
  905. (name "sbcl-clx-truetype")
  906. (version (git-version "0.0.1" revision commit))
  907. (source
  908. (origin
  909. (method git-fetch)
  910. (uri (git-reference
  911. (url "https://github.com/l04m33/clx-truetype")
  912. (commit commit)))
  913. (file-name (git-file-name name version))
  914. (sha256
  915. (base32
  916. "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
  917. (modules '((guix build utils)))
  918. (snippet
  919. '(begin
  920. (substitute* "package.lisp"
  921. ((":export") ":export\n :+font-cache-filename+"))
  922. #t))))
  923. (build-system asdf-build-system/sbcl)
  924. (inputs
  925. (list sbcl-clx
  926. sbcl-zpb-ttf
  927. sbcl-cl-vectors
  928. sbcl-cl-fad
  929. sbcl-cl-store
  930. sbcl-trivial-features))
  931. (home-page "https://github.com/l04m33/clx-truetype")
  932. (synopsis "Antialiased TrueType font rendering using CLX and XRender")
  933. (description "CLX-TrueType is pure common lisp solution for
  934. antialiased TrueType font rendering using CLX and XRender extension.")
  935. (license license:expat))))
  936. (define-public cl-clx-truetype
  937. (sbcl-package->cl-source-package sbcl-clx-truetype))
  938. (define-public ecl-clx-truetype
  939. (sbcl-package->ecl-package sbcl-clx-truetype))
  940. (define-public sbcl-slynk
  941. (let ((commit "0470c0281498b9de072fcbf3718fc66720eeb3d0"))
  942. (package
  943. (name "sbcl-slynk")
  944. (version (git-version "1.0.43" "5" commit))
  945. (source
  946. (origin
  947. (method git-fetch)
  948. (uri
  949. (git-reference
  950. (url "https://github.com/joaotavora/sly")
  951. (commit commit)))
  952. (sha256
  953. (base32 "1ws2a9azmdkkg47xnd4jggna45nf0bh54gyp0799b44c4bgjp029"))
  954. (file-name (git-file-name "slynk" version))))
  955. (build-system asdf-build-system/sbcl)
  956. (outputs '("out" "image"))
  957. (arguments
  958. `(#:phases
  959. (modify-phases %standard-phases
  960. (add-after 'create-asdf-configuration 'build-image
  961. (lambda* (#:key outputs #:allow-other-keys)
  962. (build-image (string-append
  963. (assoc-ref outputs "image")
  964. "/bin/slynk")
  965. outputs
  966. #:dependencies '("slynk"
  967. "slynk/arglists"
  968. "slynk/fancy-inspector"
  969. "slynk/package-fu"
  970. "slynk/mrepl"
  971. "slynk/trace-dialog"
  972. "slynk/profiler"
  973. "slynk/stickers"
  974. "slynk/indentation"
  975. "slynk/retro"))
  976. #t)))))
  977. (synopsis "Common Lisp IDE for Emacs")
  978. (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
  979. It also features a completely redesigned REPL based on Emacs's own
  980. full-featured @code{comint-mode}, live code annotations, and a consistent interactive
  981. button interface. Everything can be copied to the REPL. One can create
  982. multiple inspectors with independent history.")
  983. (home-page "https://github.com/joaotavora/sly")
  984. (license license:public-domain)
  985. (properties `((cl-source-variant . ,(delay cl-slynk)))))))
  986. (define-public cl-slynk
  987. (sbcl-package->cl-source-package sbcl-slynk))
  988. (define-public ecl-slynk
  989. (let ((pkg (sbcl-package->ecl-package sbcl-slynk)))
  990. (package
  991. (inherit pkg)
  992. (outputs '("out"))
  993. (arguments
  994. (substitute-keyword-arguments (package-arguments pkg)
  995. ((#:phases phases)
  996. `(modify-phases ,phases
  997. (delete 'build-image))))))))
  998. (define-public sbcl-parse-js
  999. (let ((commit "fbadc6029bec7039602abfc06c73bb52970998f6")
  1000. (revision "1"))
  1001. (package
  1002. (name "sbcl-parse-js")
  1003. (version (git-version "0.0.0" revision commit))
  1004. (source
  1005. (origin
  1006. (method git-fetch)
  1007. (uri (git-reference
  1008. (url "http://marijn.haverbeke.nl/git/parse-js")
  1009. (commit commit)))
  1010. (file-name (git-file-name "cl-parse-js" version))
  1011. (sha256
  1012. (base32
  1013. "1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
  1014. (build-system asdf-build-system/sbcl)
  1015. (home-page "https://marijnhaverbeke.nl/parse-js/")
  1016. (synopsis "Parse JavaScript")
  1017. (description "Parse-js is a Common Lisp package for parsing
  1018. JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
  1019. (license license:zlib))))
  1020. (define-public cl-parse-js
  1021. (sbcl-package->cl-source-package sbcl-parse-js))
  1022. (define-public ecl-parse-js
  1023. (sbcl-package->ecl-package sbcl-parse-js))
  1024. (define-public sbcl-parse-number
  1025. (package
  1026. (name "sbcl-parse-number")
  1027. (version "1.7")
  1028. (source
  1029. (origin
  1030. (method git-fetch)
  1031. (uri (git-reference
  1032. (url "https://github.com/sharplispers/parse-number/")
  1033. (commit (string-append "v" version))))
  1034. (file-name (git-file-name name version))
  1035. (sha256
  1036. (base32
  1037. "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
  1038. (build-system asdf-build-system/sbcl)
  1039. (home-page "https://www.cliki.net/PARSE-NUMBER")
  1040. (synopsis "Parse numbers")
  1041. (description "@code{parse-number} is a library of functions for parsing
  1042. strings into one of the standard Common Lisp number types without using the
  1043. reader. @code{parse-number} accepts an arbitrary string and attempts to parse
  1044. the string into one of the standard Common Lisp number types, if possible, or
  1045. else @code{parse-number} signals an error of type @code{invalid-number}.")
  1046. (license license:bsd-3)))
  1047. (define-public cl-parse-number
  1048. (sbcl-package->cl-source-package sbcl-parse-number))
  1049. (define-public ecl-parse-number
  1050. (sbcl-package->ecl-package sbcl-parse-number))
  1051. (define-public sbcl-iterate
  1052. (package
  1053. (name "sbcl-iterate")
  1054. (version "1.5.3")
  1055. (source
  1056. (origin
  1057. (method git-fetch)
  1058. (uri (git-reference
  1059. (url "https://gitlab.common-lisp.net/iterate/iterate.git")
  1060. (commit version)))
  1061. (file-name (git-file-name "cl-iterate" version))
  1062. (sha256
  1063. (base32 "0l6l8fpgcpwpmi00jwmamxbspbqa8fil6dv11bf9gaxxbw41f8c2"))))
  1064. (build-system asdf-build-system/sbcl)
  1065. (native-inputs
  1066. (list sbcl-rt))
  1067. (home-page "https://common-lisp.net/project/iterate/")
  1068. (synopsis "Iteration construct for Common Lisp")
  1069. (description "@code{iterate} is an iteration construct for Common Lisp.
  1070. It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
  1071. @itemize
  1072. @item it is extensible,
  1073. @item it helps editors like Emacs indent iterate forms by having a more
  1074. lisp-like syntax, and
  1075. @item it isn't part of the ANSI standard for Common Lisp.
  1076. @end itemize\n")
  1077. (license license:expat)))
  1078. (define-public cl-iterate
  1079. (sbcl-package->cl-source-package sbcl-iterate))
  1080. (define-public ecl-iterate
  1081. (sbcl-package->ecl-package sbcl-iterate))
  1082. (define-public sbcl-cl-uglify-js
  1083. ;; There have been many bug fixes since the 2010 release.
  1084. (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
  1085. (revision "1"))
  1086. (package
  1087. (name "sbcl-cl-uglify-js")
  1088. (version (git-version "0.1" revision commit))
  1089. (source
  1090. (origin
  1091. (method git-fetch)
  1092. (uri (git-reference
  1093. (url "https://github.com/mishoo/cl-uglify-js")
  1094. (commit commit)))
  1095. (file-name (git-file-name "cl-uglify-js" version))
  1096. (sha256
  1097. (base32
  1098. "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
  1099. (build-system asdf-build-system/sbcl)
  1100. (inputs
  1101. (list sbcl-parse-js sbcl-cl-ppcre sbcl-cl-ppcre-unicode
  1102. sbcl-parse-number sbcl-iterate))
  1103. (home-page "https://github.com/mishoo/cl-uglify-js")
  1104. (synopsis "JavaScript compressor library for Common Lisp")
  1105. (description "This is a Common Lisp version of UglifyJS, a JavaScript
  1106. compressor. It works on data produced by @code{parse-js} to generate a
  1107. @dfn{minified} version of the code. Currently it can:
  1108. @itemize
  1109. @item reduce variable names (usually to single letters)
  1110. @item join consecutive @code{var} statements
  1111. @item resolve simple binary expressions
  1112. @item group most consecutive statements using the @code{sequence} operator (comma)
  1113. @item remove unnecessary blocks
  1114. @item convert @code{IF} expressions in various ways that result in smaller code
  1115. @item remove some unreachable code
  1116. @end itemize\n")
  1117. (license license:zlib))))
  1118. (define-public cl-uglify-js
  1119. (sbcl-package->cl-source-package sbcl-cl-uglify-js))
  1120. (define-public ecl-cl-uglify-js
  1121. (sbcl-package->ecl-package sbcl-cl-uglify-js))
  1122. (define-public uglify-js
  1123. (package
  1124. (inherit sbcl-cl-uglify-js)
  1125. (name "uglify-js")
  1126. (build-system trivial-build-system)
  1127. (arguments
  1128. `(#:modules ((guix build utils))
  1129. #:builder
  1130. (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/"))
  1131. (script (string-append bin "uglify-js")))
  1132. (use-modules (guix build utils))
  1133. (mkdir-p bin)
  1134. (with-output-to-file script
  1135. (lambda _
  1136. (format #t "#!~a/bin/sbcl --script
  1137. (require :asdf)
  1138. (asdf:initialize-source-registry
  1139. #p\"~a/etc/common-lisp/source-registry.conf.d/\")
  1140. (asdf:initialize-output-translations
  1141. #p\"~a/etc/common-lisp/asdf-output-translations.conf.d/\")"
  1142. (assoc-ref %build-inputs "sbcl")
  1143. (assoc-ref %build-inputs "sbcl-cl-uglify-js")
  1144. (assoc-ref %build-inputs "sbcl-cl-uglify-js"))
  1145. ;; FIXME: cannot use progn here because otherwise it fails to
  1146. ;; find cl-uglify-js.
  1147. (for-each
  1148. write
  1149. '(;; Quiet, please!
  1150. (let ((*standard-output* (make-broadcast-stream))
  1151. (*error-output* (make-broadcast-stream)))
  1152. (asdf:load-system :cl-uglify-js))
  1153. (let ((file (cadr *posix-argv*)))
  1154. (if file
  1155. (format t "~a"
  1156. (cl-uglify-js:ast-gen-code
  1157. (cl-uglify-js:ast-mangle
  1158. (cl-uglify-js:ast-squeeze
  1159. (with-open-file (in file)
  1160. (parse-js:parse-js in))))
  1161. :beautify nil))
  1162. (progn
  1163. (format *error-output*
  1164. "Please provide a JavaScript file.~%")
  1165. (sb-ext:exit :code 1))))))))
  1166. (chmod script #o755)
  1167. #t)))
  1168. (inputs
  1169. (list sbcl sbcl-cl-uglify-js))
  1170. (synopsis "JavaScript compressor")))
  1171. (define-public sbcl-cl-strings
  1172. (let ((revision "1")
  1173. (commit "93ec4177fc51f403a9f1ef0a8933f36d917f2140"))
  1174. (package
  1175. (name "sbcl-cl-strings")
  1176. (version (git-version "0.0.1" revision commit))
  1177. (source
  1178. (origin
  1179. (method git-fetch)
  1180. (uri (git-reference
  1181. (url "https://github.com/diogoalexandrefranco/cl-strings")
  1182. (commit commit)))
  1183. (sha256
  1184. (base32 "1j8hs54fn0wsf5zfzhhgiva47n9hsmfa74iinahz6nmcs8iy75aj"))
  1185. (file-name (git-file-name "cl-strings" version))))
  1186. (build-system asdf-build-system/sbcl)
  1187. (synopsis "Set of utilities to manipulate strings in Common Lisp")
  1188. (description
  1189. "@command{cl-strings} is a small, portable, dependency-free set of
  1190. utilities that make it even easier to manipulate text in Common Lisp. It has
  1191. 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
  1192. (home-page "https://github.com/diogoalexandrefranco/cl-strings")
  1193. (license license:expat))))
  1194. (define-public cl-strings
  1195. (sbcl-package->cl-source-package sbcl-cl-strings))
  1196. (define-public ecl-cl-strings
  1197. (sbcl-package->ecl-package sbcl-cl-strings))
  1198. (define-public sbcl-trivial-features
  1199. (package
  1200. (name "sbcl-trivial-features")
  1201. (version "1.0")
  1202. (source
  1203. (origin
  1204. (method git-fetch)
  1205. (uri (git-reference
  1206. (url "https://github.com/trivial-features/trivial-features")
  1207. (commit (string-append "v" version))))
  1208. (file-name (git-file-name "trivial-features" version))
  1209. (sha256
  1210. (base32 "0jsqah1znzqilxnw5vannb083ayk0d7phkackqzwwqkyg5hpn6pq"))))
  1211. (build-system asdf-build-system/sbcl)
  1212. (arguments
  1213. '(#:asd-files '("trivial-features.asd")
  1214. ;; FIXME: Tests disabled because of a circular dependency between
  1215. ;; trivial-features and cffi.
  1216. #:tests? #f))
  1217. ;; (native-inputs
  1218. ;; `(("cffi" ,sbcl-cffi)))
  1219. (home-page "https://cliki.net/trivial-features")
  1220. (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
  1221. (description "Trivial-features ensures that @code{*FEATURES*} is
  1222. consistent across multiple Common Lisp implementations.")
  1223. (license license:expat)))
  1224. (define-public cl-trivial-features
  1225. (sbcl-package->cl-source-package sbcl-trivial-features))
  1226. (define-public ecl-trivial-features
  1227. (sbcl-package->ecl-package sbcl-trivial-features))
  1228. (define-public sbcl-hu.dwim.asdf
  1229. (let ((commit "67cdf84390e530af4303cc4bc815fdf2a5e48f59"))
  1230. (package
  1231. (name "sbcl-hu.dwim.asdf")
  1232. (version "20200724")
  1233. (source
  1234. (origin
  1235. (method git-fetch)
  1236. (uri (git-reference
  1237. (url "https://github.com/hu-dwim/hu.dwim.asdf")
  1238. (commit commit)))
  1239. (file-name (git-file-name name version))
  1240. (sha256
  1241. (base32
  1242. "0p81jalilkaqw832a12s35q0z6rrarxjasm1jy6h4fvyj9pf0zkx"))))
  1243. (build-system asdf-build-system/sbcl)
  1244. (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
  1245. (synopsis "Extensions to ASDF")
  1246. (description "Various ASDF extensions such as attached test and
  1247. documentation system, explicit development support, etc.")
  1248. (license license:public-domain))))
  1249. (define-public cl-hu.dwim.asdf
  1250. (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
  1251. (define-public ecl-hu.dwim.asdf
  1252. (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
  1253. (define-public sbcl-babel
  1254. ;; No release since 2014.
  1255. (let ((commit "f892d0587c7f3a1e6c0899425921b48008c29ee3")
  1256. (revision "2"))
  1257. (package
  1258. (name "sbcl-babel")
  1259. (version (git-version "0.5.0" revision commit))
  1260. (source
  1261. (origin
  1262. (method git-fetch)
  1263. (uri (git-reference
  1264. (url "https://github.com/cl-babel/babel")
  1265. (commit commit)))
  1266. (file-name (git-file-name "cl-babel" version))
  1267. (sha256
  1268. (base32 "04frn19mngvsh8bh7fb1rfjm8mqk8bgzx5c43dg7z02nfsxkqqak"))))
  1269. (build-system asdf-build-system/sbcl)
  1270. (native-inputs
  1271. (list sbcl-hu.dwim.stefil))
  1272. (inputs
  1273. (list sbcl-alexandria sbcl-trivial-features))
  1274. (home-page "https://common-lisp.net/project/babel/")
  1275. (synopsis "Charset encoding and decoding library")
  1276. (description "Babel is a charset encoding and decoding library, not unlike
  1277. GNU libiconv, but completely written in Common Lisp.")
  1278. (license (list license:bsd-2 license:expat)))))
  1279. (define-public cl-babel
  1280. (sbcl-package->cl-source-package sbcl-babel))
  1281. (define-public ecl-babel
  1282. (sbcl-package->ecl-package sbcl-babel))
  1283. (define-public sbcl-cl-yacc
  1284. (package
  1285. (name "sbcl-cl-yacc")
  1286. (version "0.3")
  1287. (source
  1288. (origin
  1289. (method git-fetch)
  1290. (uri (git-reference
  1291. (url "https://github.com/jech/cl-yacc")
  1292. (commit (string-append "cl-yacc-" version))))
  1293. (sha256
  1294. (base32
  1295. "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
  1296. (file-name (string-append "cl-yacc-" version "-checkout"))))
  1297. (build-system asdf-build-system/sbcl)
  1298. (arguments
  1299. `(#:asd-systems '("yacc")))
  1300. (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
  1301. (description
  1302. "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
  1303. to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
  1304. CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
  1305. by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
  1306. to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
  1307. (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
  1308. (license license:expat)))
  1309. (define-public cl-yacc
  1310. (sbcl-package->cl-source-package sbcl-cl-yacc))
  1311. (define-public ecl-cl-yacc
  1312. (sbcl-package->ecl-package sbcl-cl-yacc))
  1313. (define-public sbcl-eager-future2
  1314. (let ((commit "54df8effd9d9eccac917509590286b5ac5f9cb30"))
  1315. (package
  1316. (name "sbcl-eager-future2")
  1317. (version (git-version "0.0.0" "1" commit))
  1318. (source
  1319. (origin
  1320. (method git-fetch)
  1321. (uri (git-reference
  1322. (url "https://gitlab.common-lisp.net/vsedach/eager-future2.git")
  1323. (commit commit)))
  1324. (file-name (git-file-name name version))
  1325. (sha256
  1326. (base32
  1327. "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld"))))
  1328. (build-system asdf-build-system/sbcl)
  1329. (inputs
  1330. (list sbcl-bordeaux-threads sbcl-trivial-garbage))
  1331. (synopsis "Futures promises synchronization mechanism for Common Lisp")
  1332. (description
  1333. "Eager Future2 is a Common Lisp library that provides composable
  1334. concurrency primitives that unify parallel and lazy evaluation, are integrated
  1335. with the Common Lisp condition system, and have automatic resource
  1336. management.")
  1337. (home-page "https://gitlab.common-lisp.net/vsedach/eager-future2")
  1338. (license license:lgpl3+))))
  1339. (define-public cl-eager-future2
  1340. (sbcl-package->cl-source-package sbcl-eager-future2))
  1341. (define-public ecl-eager-future2
  1342. (sbcl-package->ecl-package sbcl-eager-future2))
  1343. (define-public sbcl-jpl-util
  1344. (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
  1345. (package
  1346. (name "sbcl-jpl-util")
  1347. (version "20151005")
  1348. (source
  1349. (origin
  1350. (method git-fetch)
  1351. (uri (git-reference
  1352. ;; Quicklisp uses this fork.
  1353. (url "https://github.com/hawkir/cl-jpl-util")
  1354. (commit commit)))
  1355. (file-name
  1356. (git-file-name "jpl-util" version))
  1357. (sha256
  1358. (base32
  1359. "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
  1360. (build-system asdf-build-system/sbcl)
  1361. (synopsis "Collection of Common Lisp utility functions and macros")
  1362. (description
  1363. "@command{cl-jpl-util} is a collection of Common Lisp utility functions
  1364. and macros, primarily for software projects written in CL by the author.")
  1365. (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
  1366. (license license:isc))))
  1367. (define-public cl-jpl-util
  1368. (sbcl-package->cl-source-package sbcl-jpl-util))
  1369. (define-public ecl-jpl-util
  1370. (sbcl-package->ecl-package sbcl-jpl-util))
  1371. (define-public sbcl-piping
  1372. (let ((commit "c7a4163c00dea7e72bf6ad33d6abac0d5826a656")
  1373. (revision "1"))
  1374. (package
  1375. (name "sbcl-piping")
  1376. (version (git-version "2.0.0" revision commit))
  1377. (source
  1378. (origin
  1379. (method git-fetch)
  1380. (uri (git-reference
  1381. (url "https://github.com/Shinmera/piping/")
  1382. (commit commit)))
  1383. (file-name (git-file-name "piping" version))
  1384. (sha256
  1385. (base32 "0in84qnfkynm36d4n4d6v87vprpi27xrydnga462wfhplji6klv5"))))
  1386. (build-system asdf-build-system/sbcl)
  1387. (home-page "https://shinmera.github.io/piping/")
  1388. (synopsis "Library to enable simple message pipelines")
  1389. (description
  1390. "This is a Common Lisp library to enable simple message pipelines.")
  1391. (license license:zlib))))
  1392. (define-public ecl-piping
  1393. (sbcl-package->ecl-package sbcl-piping))
  1394. (define-public cl-piping
  1395. (sbcl-package->cl-source-package sbcl-piping))
  1396. (define-public sbcl-cl-pcg
  1397. (let ((commit "8263d85ab0ca17fb05637a4430c2d564456bce8f")
  1398. (revision "1"))
  1399. (package
  1400. (name "sbcl-cl-pcg")
  1401. (version (git-version "1.0.0" revision commit))
  1402. (source
  1403. (origin
  1404. (method git-fetch)
  1405. (uri (git-reference
  1406. (url "https://github.com/sjl/cl-pcg")
  1407. (commit commit)))
  1408. (file-name (git-file-name "cl-pcg" version))
  1409. (sha256
  1410. (base32 "0s57wvvlvshp1gcp9i9d3qcmqhswnxps3i0y7wbb0v8i1a3p46m4"))))
  1411. (build-system asdf-build-system/sbcl)
  1412. (native-inputs
  1413. (list sbcl-1am))
  1414. (home-page "https://github.com/sjl/cl-pcg")
  1415. (synopsis "Permuted congruential generators in Common Lisp")
  1416. (description
  1417. "This is a bare-bones Permuted Congruential Generator implementation in
  1418. pure Common Lisp.")
  1419. (license license:expat))))
  1420. (define-public ecl-cl-pcg
  1421. (sbcl-package->ecl-package sbcl-cl-pcg))
  1422. (define-public cl-pcg
  1423. (sbcl-package->cl-source-package sbcl-cl-pcg))
  1424. (define-public sbcl-seedable-rng
  1425. (let ((commit "aa1a1564b6e07e2698df37c7a98348c4f762cb15")
  1426. (revision "1"))
  1427. (package
  1428. (name "sbcl-seedable-rng")
  1429. (version (git-version "0.0.0" revision commit))
  1430. (source
  1431. (origin
  1432. (method git-fetch)
  1433. (uri (git-reference
  1434. (url "https://git.mfiano.net/mfiano/seedable-rng")
  1435. (commit commit)))
  1436. (file-name (git-file-name "seedable-rng" version))
  1437. (sha256
  1438. (base32 "1ldpsbp3qrfzvknclsxj3sdyms1jf9ad20dvh4w0kw3zgahn2nr5"))))
  1439. (build-system asdf-build-system/sbcl)
  1440. (inputs
  1441. (list sbcl-cl-pcg sbcl-golden-utils sbcl-ironclad))
  1442. (home-page "https://git.mfiano.net/mfiano/seedable-rng")
  1443. (synopsis "Common Lisp random number generator")
  1444. (description
  1445. "SEEDABLE-RNG provides a convenient means of generating random numbers
  1446. that are seedable with deterministic results across hardware and Common Lisp
  1447. implementations.")
  1448. (license license:expat))))
  1449. (define-public ecl-seedable-rng
  1450. (sbcl-package->ecl-package sbcl-seedable-rng))
  1451. (define-public cl-seedable-rng
  1452. (sbcl-package->cl-source-package sbcl-seedable-rng))
  1453. (define-public sbcl-jpl-queues
  1454. (package
  1455. (name "sbcl-jpl-queues")
  1456. (version "0.1")
  1457. (source
  1458. (origin
  1459. (method url-fetch)
  1460. (uri (string-append
  1461. "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
  1462. version
  1463. ".tar.gz"))
  1464. (sha256
  1465. (base32
  1466. "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
  1467. (build-system asdf-build-system/sbcl)
  1468. (inputs
  1469. `(("jpl-util" ,sbcl-jpl-util)
  1470. ("bordeaux-threads" ,sbcl-bordeaux-threads)))
  1471. (arguments
  1472. ;; Tests seem to be broken.
  1473. `(#:tests? #f))
  1474. (synopsis "Common Lisp library implementing a few different kinds of queues")
  1475. (description
  1476. "A Common Lisp library implementing a few different kinds of queues:
  1477. @itemize
  1478. @item Bounded and unbounded FIFO queues.
  1479. @item Lossy bounded FIFO queues that drop elements when full.
  1480. @item Unbounded random-order queues that use less memory than unbounded FIFO queues.
  1481. @end itemize
  1482. Additionally, a synchronization wrapper is provided to make any queue
  1483. conforming to the @command{jpl-queues} API thread-safe for lightweight
  1484. multithreading applications. (See Calispel for a more sophisticated CL
  1485. multithreaded message-passing library with timeouts and alternation among
  1486. several blockable channels.)")
  1487. (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
  1488. (license license:isc)))
  1489. (define-public cl-jpl-queues
  1490. (sbcl-package->cl-source-package sbcl-jpl-queues))
  1491. (define-public ecl-jpl-queues
  1492. (sbcl-package->ecl-package sbcl-jpl-queues))
  1493. (define-public sbcl-calispel
  1494. (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a"))
  1495. (package
  1496. (name "sbcl-calispel")
  1497. (version (git-version "0.1" "1" commit))
  1498. (source
  1499. (origin
  1500. (method git-fetch)
  1501. (uri (git-reference
  1502. ;; This fork replaces the dependency on the obsolete
  1503. ;; eager-future with eager-future2.
  1504. (url "https://github.com/hawkir/calispel")
  1505. (commit commit)))
  1506. (file-name (git-file-name name version))
  1507. (sha256
  1508. (base32
  1509. "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8"))))
  1510. (build-system asdf-build-system/sbcl)
  1511. (inputs
  1512. (list sbcl-jpl-queues sbcl-bordeaux-threads))
  1513. (native-inputs
  1514. (list sbcl-eager-future2))
  1515. (synopsis "Thread-safe message-passing channels in Common Lisp")
  1516. (description
  1517. "Calispel is a Common Lisp library for thread-safe message-passing
  1518. channels, in the style of the occam programming language, also known as
  1519. communicating sequential processes (CSP). See
  1520. @url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}.
  1521. Calispel channels let one thread communicate with another, facilitating
  1522. unidirectional communication of any Lisp object. Channels may be unbuffered,
  1523. where a sender waits for a receiver (or vice versa) before either operation can
  1524. continue, or channels may be buffered with flexible policy options.
  1525. Because sending and receiving on a channel may block, either operation can time
  1526. out after a specified amount of time.
  1527. A syntax for alternation is provided (like @code{ALT} in occam, or Unix
  1528. @code{select()}): given a sequence of operations, any or all of which may
  1529. block, alternation selects the first operation that doesn't block and executes
  1530. associated code. Alternation can also time out, executing an \"otherwise\"
  1531. clause if no operation becomes available within a set amount of time.
  1532. Calispel is a message-passing library, and as such leaves the role of
  1533. threading abstractions and utilities left to be filled by complementary
  1534. libraries such as Bordeaux-Threads and Eager Future.")
  1535. (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
  1536. (license license:isc))))
  1537. (define-public cl-calispel
  1538. (sbcl-package->cl-source-package sbcl-calispel))
  1539. (define-public ecl-calispel
  1540. (sbcl-package->ecl-package sbcl-calispel))
  1541. (define-public sbcl-esrap
  1542. (let ((commit "4c82a863871e117f0041b9ef37e61c0b62318aa7")
  1543. (revision "3"))
  1544. (package
  1545. (name "sbcl-esrap")
  1546. (version (git-version "0.18" revision commit))
  1547. (source
  1548. (origin
  1549. (method git-fetch)
  1550. (uri (git-reference
  1551. (url "https://github.com/scymtym/esrap")
  1552. (commit commit)))
  1553. (sha256
  1554. (base32 "16nc3rhxd61xabja1h9akqqva0cmz2gxk0bkaqy10h492wx93d81"))
  1555. (file-name (git-file-name "cl-esrap" version))))
  1556. (build-system asdf-build-system/sbcl)
  1557. (native-inputs
  1558. (list sbcl-fiveam))
  1559. (inputs
  1560. (list sbcl-alexandria sbcl-trivial-with-current-source-form))
  1561. (synopsis "Common Lisp packrat parser")
  1562. (description
  1563. "This is a packrat parser for Common Lisp.
  1564. In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
  1565. @itemize
  1566. @item dynamic redefinition of nonterminals
  1567. @item inline grammars
  1568. @item semantic predicates
  1569. @item introspective facilities (describing grammars, tracing, setting breaks)
  1570. @item left-recursive grammars
  1571. @item functions as terminals
  1572. @item accurate, customizable parse error reports
  1573. @end itemize\n")
  1574. (home-page "https://scymtym.github.io/esrap/")
  1575. (license license:expat))))
  1576. (define-public cl-esrap
  1577. (sbcl-package->cl-source-package sbcl-esrap))
  1578. (define-public ecl-esrap
  1579. (sbcl-package->ecl-package sbcl-esrap))
  1580. (define-public sbcl-split-sequence
  1581. (package
  1582. (name "sbcl-split-sequence")
  1583. (version "2.0.1")
  1584. (source
  1585. (origin
  1586. (method git-fetch)
  1587. (uri (git-reference
  1588. (url "https://github.com/sharplispers/split-sequence")
  1589. (commit (string-append "v" version))))
  1590. (sha256
  1591. (base32
  1592. "172k7iv775kwism6304p6z7mqpjvipl57nq1bgvmbk445943fmhq"))
  1593. (file-name (git-file-name "split-sequence" version))))
  1594. (build-system asdf-build-system/sbcl)
  1595. (native-inputs
  1596. (list sbcl-fiveam))
  1597. (synopsis "Member of the Common Lisp Utilities family of programs")
  1598. (description
  1599. "Splits sequence into a list of subsequences delimited by objects
  1600. satisfying the test.")
  1601. (home-page "https://cliki.net/split-sequence")
  1602. (license license:expat)))
  1603. (define-public cl-split-sequence
  1604. (sbcl-package->cl-source-package sbcl-split-sequence))
  1605. (define-public ecl-split-sequence
  1606. (sbcl-package->ecl-package sbcl-split-sequence))
  1607. (define-public sbcl-html-encode
  1608. (package
  1609. (name "sbcl-html-encode")
  1610. (version "1.2")
  1611. (source
  1612. (origin
  1613. (method url-fetch)
  1614. (uri (string-append
  1615. "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
  1616. version ".tgz"))
  1617. (sha256
  1618. (base32
  1619. "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))))
  1620. (build-system asdf-build-system/sbcl)
  1621. (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
  1622. (description
  1623. "A library for encoding text in various web-savvy encodings.")
  1624. (home-page "http://quickdocs.org/html-encode/")
  1625. (license license:expat)))
  1626. (define-public cl-html-encode
  1627. (sbcl-package->cl-source-package sbcl-html-encode))
  1628. (define-public ecl-html-encode
  1629. (sbcl-package->ecl-package sbcl-html-encode))
  1630. (define-public sbcl-colorize
  1631. (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
  1632. (package
  1633. (name "sbcl-colorize")
  1634. (version (git-version "0.0.0" "1" commit))
  1635. (source
  1636. (origin
  1637. (method git-fetch)
  1638. (uri (git-reference
  1639. (url "https://github.com/kingcons/colorize")
  1640. (commit commit)))
  1641. (sha256
  1642. (base32
  1643. "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
  1644. (file-name (git-file-name "colorize" version))))
  1645. (build-system asdf-build-system/sbcl)
  1646. (inputs
  1647. (list sbcl-alexandria sbcl-split-sequence sbcl-html-encode))
  1648. (synopsis "Common Lisp for syntax highlighting")
  1649. (description
  1650. "@command{colorize} is a Lisp library for syntax highlighting
  1651. supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
  1652. C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
  1653. (home-page "https://github.com/kingcons/colorize")
  1654. ;; TODO: Missing license?
  1655. (license license:expat))))
  1656. (define-public cl-colorize
  1657. (sbcl-package->cl-source-package sbcl-colorize))
  1658. (define-public ecl-colorize
  1659. (sbcl-package->ecl-package sbcl-colorize))
  1660. (define-public sbcl-3bmd
  1661. (let ((commit "4e08d82d7c8fb1b8fc708c87f4d9d13a1ab490cb")
  1662. (revision "3"))
  1663. (package
  1664. (name "sbcl-3bmd")
  1665. (version (git-version "0.0.0" revision commit))
  1666. (source
  1667. (origin
  1668. (method git-fetch)
  1669. (uri (git-reference
  1670. (url "https://github.com/3b/3bmd")
  1671. (commit commit)))
  1672. (sha256
  1673. (base32 "1j885ykg2yds0l7dmw21lrhs7pd66lf541pf9lb677nkhc2f62jz"))
  1674. (file-name (git-file-name "cl-3bmd" version))))
  1675. (build-system asdf-build-system/sbcl)
  1676. (arguments
  1677. `(#:asd-systems
  1678. '("3bmd"
  1679. "3bmd-ext-definition-lists"
  1680. "3bmd-ext-math"
  1681. "3bmd-ext-tables"
  1682. "3bmd-ext-wiki-links"
  1683. "3bmd-youtube"
  1684. "3bmd-ext-code-blocks")
  1685. #:phases
  1686. (modify-phases %standard-phases
  1687. (add-after 'unpack 'fix-python3-path
  1688. (lambda _
  1689. (substitute* "code-blocks.lisp"
  1690. (("python3") (which "python3"))))))))
  1691. (native-inputs
  1692. (list sbcl-fiasco))
  1693. (inputs
  1694. (list python
  1695. python-pygments
  1696. sbcl-alexandria
  1697. sbcl-colorize
  1698. sbcl-split-sequence
  1699. sbcl-esrap))
  1700. (home-page "https://github.com/3b/3bmd")
  1701. (synopsis "Markdown processor in Command Lisp using esrap parser")
  1702. (description
  1703. "This is a Common Lisp Markdown to HTML converter, using @command{esrap}
  1704. for parsing, and grammar based on @command{peg-markdown}.")
  1705. (license license:expat))))
  1706. (define-public cl-3bmd
  1707. (sbcl-package->cl-source-package sbcl-3bmd))
  1708. (define-public ecl-3bmd
  1709. (sbcl-package->ecl-package sbcl-3bmd))
  1710. (define-public sbcl-cl-fad
  1711. ;; No release since 2019
  1712. (let ((commit "3f4d32d3aa1093966046d001411a852eb8f4b535")
  1713. (revision "1"))
  1714. (package
  1715. (name "sbcl-cl-fad")
  1716. (version (git-version "0.7.6" revision commit))
  1717. (source
  1718. (origin
  1719. (method git-fetch)
  1720. (uri (git-reference
  1721. (url "https://github.com/edicl/cl-fad/")
  1722. (commit commit)))
  1723. (sha256
  1724. (base32 "0a1xqldrq170lflnns3xp6swpnvsvllf5vq0h7sz8jqh4riqlny6"))
  1725. (file-name (git-file-name "cl-fad" version))))
  1726. (build-system asdf-build-system/sbcl)
  1727. (native-inputs
  1728. (list sbcl-cl-ppcre sbcl-unit-test))
  1729. (inputs
  1730. (list sbcl-alexandria sbcl-bordeaux-threads))
  1731. (synopsis "Portable pathname library for Common Lisp")
  1732. (description
  1733. "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
  1734. Lisp's standard pathname functions. It is intended to provide some
  1735. unification between current CL implementations on Windows, OS X, Linux, and
  1736. Unix. Most of the code was written by Peter Seibel for his book Practical
  1737. Common Lisp.")
  1738. (home-page "https://edicl.github.io/cl-fad/")
  1739. (license license:bsd-2))))
  1740. (define-public cl-fad
  1741. (sbcl-package->cl-source-package sbcl-cl-fad))
  1742. (define-public ecl-cl-fad
  1743. (sbcl-package->ecl-package sbcl-cl-fad))
  1744. (define-public sbcl-fn
  1745. (let ((commit "8d8587d03a7b5e26b306fc90018e385d9e5acc2c")
  1746. (revision "1"))
  1747. (package
  1748. (name "sbcl-fn")
  1749. (version (git-version "0.0.0" revision commit))
  1750. (source
  1751. (origin
  1752. (method git-fetch)
  1753. (uri (git-reference
  1754. (url "https://github.com/cbaggers/fn")
  1755. (commit commit)))
  1756. (file-name (git-file-name "fn" version))
  1757. (sha256
  1758. (base32 "0yyp9z6iwx476whz0n1rpjznjyqqhlylhzwpgg5xx92lxmskl752"))))
  1759. (build-system asdf-build-system/sbcl)
  1760. (inputs
  1761. (list sbcl-named-readtables))
  1762. (home-page "https://github.com/cbaggers/fn")
  1763. (synopsis "Macros for lambda brevity")
  1764. (description
  1765. "This is a Common Lisp library providing lambda shorthand macros aiming
  1766. to be used in cases where the word @emph{lambda} and the arguments are longer
  1767. than the body of the lambda.")
  1768. (license license:public-domain))))
  1769. (define-public ecl-fn
  1770. (sbcl-package->ecl-package sbcl-fn))
  1771. (define-public cl-fn
  1772. (sbcl-package->cl-source-package sbcl-fn))
  1773. (define-public sbcl-nibbles
  1774. ;; No tagged release since 2018.
  1775. (let ((commit "dad25240928d5cf8f7df69c4398244e03570bb35")
  1776. (revision "2"))
  1777. (package
  1778. (name "sbcl-nibbles")
  1779. (version (git-version "0.14" revision commit))
  1780. (source
  1781. (origin
  1782. (method git-fetch)
  1783. (uri (git-reference
  1784. (url "https://github.com/sharplispers/nibbles/")
  1785. (commit commit)))
  1786. (sha256
  1787. (base32 "0r6ljlpgjmkf87pmvdwzva8qj15bhznc3ylgcjjqyy4frbx9lygz"))
  1788. (file-name (git-file-name "nibbles" version))))
  1789. (build-system asdf-build-system/sbcl)
  1790. (native-inputs
  1791. ;; Tests only.
  1792. (list sbcl-rt))
  1793. (synopsis
  1794. "Common Lisp library for accessing octet-addressed blocks of data")
  1795. (description
  1796. "When dealing with network protocols and file formats, it's common to
  1797. have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
  1798. flavors. Common Lisp sort of supports this by specifying :element-type for
  1799. streams, but that facility is underspecified and there's nothing similar for
  1800. read/write from octet vectors. What most people wind up doing is rolling their
  1801. own small facility for their particular needs and calling it a day.
  1802. This library attempts to be comprehensive and centralize such
  1803. facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
  1804. vectors in signed or unsigned flavors are provided; these functions are also
  1805. SETFable. Since it's sometimes desirable to read/write directly from streams,
  1806. functions for doing so are also provided. On some implementations,
  1807. reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
  1808. also be supported.")
  1809. (home-page "https://github.com/sharplispers/nibbles")
  1810. (license license:bsd-3))))
  1811. (define-public cl-nibbles
  1812. (sbcl-package->cl-source-package sbcl-nibbles))
  1813. (define-public ecl-nibbles
  1814. (sbcl-package->ecl-package sbcl-nibbles))
  1815. (define-public sbcl-ironclad
  1816. (package
  1817. (name "sbcl-ironclad")
  1818. (version "0.57")
  1819. (source
  1820. (origin
  1821. (method git-fetch)
  1822. (uri (git-reference
  1823. (url "https://github.com/sharplispers/ironclad/")
  1824. (commit (string-append "v" version))))
  1825. (sha256
  1826. (base32 "123qnf4rmi06vyfmnpdzbjskz8vk35kppjpmms21bxhb7rhxzlh2"))
  1827. (file-name (git-file-name "cl-ironclad" version))))
  1828. (build-system asdf-build-system/sbcl)
  1829. (native-inputs
  1830. ;; Tests only.
  1831. (list sbcl-rt))
  1832. (inputs
  1833. (list sbcl-bordeaux-threads sbcl-flexi-streams))
  1834. (synopsis "Cryptographic toolkit written in Common Lisp")
  1835. (description
  1836. "Ironclad is a cryptography library written entirely in Common Lisp.
  1837. It includes support for several popular ciphers, digests, MACs and public key
  1838. cryptography algorithms. For several implementations that support Gray
  1839. streams, support is included for convenient stream wrappers.")
  1840. (home-page "https://github.com/sharplispers/ironclad")
  1841. (license license:bsd-3)))
  1842. (define-public cl-ironclad
  1843. (sbcl-package->cl-source-package sbcl-ironclad))
  1844. (define-public ecl-ironclad
  1845. (sbcl-package->ecl-package sbcl-ironclad))
  1846. (define-public sbcl-named-readtables
  1847. (let ((commit "585a28eee8b1b1999279b48cb7e9731187e14b66")
  1848. (revision "3"))
  1849. (package
  1850. (name "sbcl-named-readtables")
  1851. (version (git-version "0.9" revision commit))
  1852. (source
  1853. (origin
  1854. (method git-fetch)
  1855. (uri (git-reference
  1856. (url "https://github.com/melisgl/named-readtables")
  1857. (commit commit)))
  1858. (sha256
  1859. (base32 "072p5djqq9pliw9r20rmpz5r5q5yn6rhbp98vkkp7gfcnp5ppj51"))
  1860. (file-name (git-file-name "named-readtables" version))))
  1861. (build-system asdf-build-system/sbcl)
  1862. (home-page "https://github.com/melisgl/named-readtables/")
  1863. (synopsis "Library that creates a namespace for named readtables")
  1864. (description
  1865. "Named readtables is a library that creates a namespace for named
  1866. readtables, which is akin to package namespacing in Common Lisp.")
  1867. (license license:bsd-3))))
  1868. (define-public cl-named-readtables
  1869. (sbcl-package->cl-source-package sbcl-named-readtables))
  1870. (define-public ecl-named-readtables
  1871. (sbcl-package->ecl-package sbcl-named-readtables))
  1872. (define-public sbcl-py-configparser
  1873. ;; NOTE: (Sharlatan <2021-01-05 Tue> <19:52:19 UTC+0000>) Project updated last
  1874. ;; time 8y ago, it looks like abandoned. VCS of the project:
  1875. ;; https://svn.common-lisp.net/py-configparser/trunk
  1876. (package
  1877. (name "sbcl-py-configparser")
  1878. (version "1.0.3")
  1879. (source
  1880. (origin
  1881. (method url-fetch)
  1882. (uri (string-append
  1883. "https://common-lisp.net/project/py-configparser/releases/"
  1884. "py-configparser-" version ".tar.gz"))
  1885. (sha256
  1886. (base32 "0i4rqz5cv7d7c2w81x5lwy05s6fbi3zikf4k5kpi3bkx3cabwdxj"))))
  1887. (build-system asdf-build-system/sbcl)
  1888. (inputs
  1889. (list sbcl-parse-number))
  1890. (home-page "http://common-lisp.net/project/py-configparser/")
  1891. (synopsis "ConfigParser Python module functionality for Common Lisp")
  1892. (description "The py-configparser package implements the ConfigParser
  1893. Python module functionality in Common Lisp. In short, it implements reading
  1894. and writing of .INI-file style configuration files with sections containing
  1895. key/value pairs of configuration options. In line with the functionalities in
  1896. the python module, does this package implement basic interpolation of option
  1897. values in other options.")
  1898. (license license:expat)))
  1899. (define-public cl-py-configparser
  1900. (sbcl-package->cl-source-package sbcl-py-configparser))
  1901. (define-public ecl-py-configparser
  1902. (sbcl-package->ecl-package sbcl-py-configparser))
  1903. (define-public sbcl-pythonic-string-reader
  1904. (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
  1905. (package
  1906. (name "sbcl-pythonic-string-reader")
  1907. (version (git-version "0.0.0" "1" commit))
  1908. (source
  1909. (origin
  1910. (method git-fetch)
  1911. (uri (git-reference
  1912. (url "https://github.com/smithzvk/pythonic-string-reader/")
  1913. (commit commit)))
  1914. (sha256
  1915. (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
  1916. (file-name (git-file-name "pythonic-string-reader" version))))
  1917. (build-system asdf-build-system/sbcl)
  1918. (inputs
  1919. (list sbcl-named-readtables))
  1920. (home-page "https://github.com/smithzvk/pythonic-string-reader")
  1921. (synopsis "Read table modification inspired by Python's three quote strings")
  1922. (description "This piece of code sets up some reader macros that make it
  1923. simpler to input string literals which contain backslashes and double quotes
  1924. This is very useful for writing complicated docstrings and, as it turns out,
  1925. writing code that contains string literals that contain code themselves.")
  1926. (license license:bsd-3))))
  1927. (define-public cl-pythonic-string-reader
  1928. (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
  1929. (define-public ecl-pythonic-string-reader
  1930. (sbcl-package->ecl-package sbcl-pythonic-string-reader))
  1931. (define-public sbcl-slime-swank
  1932. (package
  1933. (name "sbcl-slime-swank")
  1934. (version "2.27")
  1935. (source
  1936. (origin
  1937. (file-name (git-file-name "slime-swank" version))
  1938. (method git-fetch)
  1939. (uri (git-reference
  1940. (url "https://github.com/slime/slime/")
  1941. (commit (string-append "v" version))))
  1942. (sha256
  1943. (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))))
  1944. (build-system asdf-build-system/sbcl)
  1945. (arguments
  1946. '(#:asd-systems '("swank")))
  1947. (home-page "https://github.com/slime/slime")
  1948. (synopsis "Common Lisp Swank server")
  1949. (description
  1950. "This is only useful if you want to start a Swank server in a Lisp
  1951. processes that doesn't run under Emacs. Lisp processes created by
  1952. @command{M-x slime} automatically start the server.")
  1953. (license (list license:gpl2+ license:public-domain))))
  1954. (define-public cl-slime-swank
  1955. (sbcl-package->cl-source-package sbcl-slime-swank))
  1956. (define-public ecl-slime-swank
  1957. (sbcl-package->ecl-package sbcl-slime-swank))
  1958. (define-public sbcl-mgl-pax
  1959. (let ((commit "ed82a80207b70801fab061f6592cf7d7355294a6")
  1960. (revision "0"))
  1961. (package
  1962. (name "sbcl-mgl-pax")
  1963. (version (git-version "0.1.0" revision commit))
  1964. (source
  1965. (origin
  1966. (method git-fetch)
  1967. (uri (git-reference
  1968. (url "https://github.com/melisgl/mgl-pax")
  1969. (commit commit)))
  1970. (sha256
  1971. (base32 "008wfa70q68cj6npi4107mfjhjzfjmvrhm1x51jpndsn2165c5bx"))
  1972. (file-name (git-file-name "cl-mgl-pax" version))))
  1973. (build-system asdf-build-system/sbcl)
  1974. ;; (native-inputs
  1975. ;; (list sbcl-try))
  1976. (inputs
  1977. (list sbcl-3bmd
  1978. sbcl-alexandria
  1979. sbcl-colorize
  1980. sbcl-md5
  1981. sbcl-named-readtables
  1982. sbcl-pythonic-string-reader
  1983. sbcl-slime-swank))
  1984. (arguments
  1985. `(#:asd-files '("mgl-pax.asdf.asd"
  1986. "mgl-pax.asd")
  1987. #:asd-systems '("mgl-pax"
  1988. "mgl-pax/navigate"
  1989. "mgl-pax/document"
  1990. "mgl-pax/transcribe")
  1991. ;; Tests disabled because of a circular dependency
  1992. ;; try -> mgl-pax -> try
  1993. #:tests? #f))
  1994. (synopsis "Exploratory programming environment and documentation generator")
  1995. (description
  1996. "PAX provides an extremely poor man's Explorable Programming
  1997. environment. Narrative primarily lives in so called sections that mix markdown
  1998. docstrings with references to functions, variables, etc, all of which should
  1999. probably have their own docstrings.
  2000. The primary focus is on making code easily explorable by using SLIME's
  2001. @command{M-.} (@command{slime-edit-definition}). See how to enable some
  2002. fanciness in Emacs Integration. Generating documentation from sections and all
  2003. the referenced items in Markdown or HTML format is also implemented.
  2004. With the simplistic tools provided, one may accomplish similar effects as with
  2005. Literate Programming, but documentation is generated from code, not vice versa
  2006. and there is no support for chunking yet. Code is first, code must look
  2007. pretty, documentation is code.")
  2008. (home-page "https://melisgl.github.io/mgl-pax/")
  2009. (license license:expat))))
  2010. (define-public cl-mgl-pax
  2011. (sbcl-package->cl-source-package sbcl-mgl-pax))
  2012. (define-public ecl-mgl-pax
  2013. (sbcl-package->ecl-package sbcl-mgl-pax))
  2014. (define-public sbcl-mssql
  2015. (let ((commit "045602a19a32254108f2b75871049293f49731eb")
  2016. (revision "1"))
  2017. (package
  2018. (name "sbcl-mssql")
  2019. (version (git-version "0.0.3" revision commit))
  2020. (source
  2021. (origin
  2022. (method git-fetch)
  2023. (uri (git-reference
  2024. (url "https://github.com/archimag/cl-mssql")
  2025. (commit commit)))
  2026. (file-name (git-file-name "cl-mssql" version))
  2027. (sha256
  2028. (base32 "09i50adppgc1ybm3ka9vbindhwa2x29f9n3n0jkrryymdhb8zknm"))))
  2029. (build-system asdf-build-system/sbcl)
  2030. (inputs
  2031. `(("cffi" ,sbcl-cffi)
  2032. ("freetds" ,freetds)
  2033. ("garbage-pools" ,sbcl-garbage-pools)
  2034. ("iterate" ,sbcl-iterate)
  2035. ("parse-number" ,sbcl-parse-number)))
  2036. (arguments
  2037. `(#:phases
  2038. (modify-phases %standard-phases
  2039. (add-after 'unpack 'fix-paths
  2040. (lambda* (#:key inputs #:allow-other-keys)
  2041. (substitute* "src/mssql.lisp"
  2042. (("libsybdb" all)
  2043. (string-append (assoc-ref inputs "freetds") "/lib/" all)))
  2044. #t)))))
  2045. (home-page "https://github.com/archimag/cl-mssql")
  2046. (synopsis "Common Lisp library to interact with MS SQL Server databases")
  2047. (description
  2048. "@code{cl-mssql} provides an interface to connect to Microsoft SQL
  2049. server. It uses the @code{libsybdb} foreign library provided by the FreeTDS
  2050. project.")
  2051. (license license:llgpl))))
  2052. (define-public ecl-mssql
  2053. (sbcl-package->ecl-package sbcl-mssql))
  2054. (define-public cl-mssql
  2055. (sbcl-package->cl-source-package sbcl-mssql))
  2056. (define-public sbcl-anaphora
  2057. (package
  2058. (name "sbcl-anaphora")
  2059. (version "0.9.6")
  2060. (source
  2061. (origin
  2062. (method git-fetch)
  2063. (uri (git-reference
  2064. (url "https://github.com/tokenrove/anaphora")
  2065. (commit version)))
  2066. (sha256
  2067. (base32
  2068. "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
  2069. (file-name (git-file-name "anaphora" version))))
  2070. (build-system asdf-build-system/sbcl)
  2071. (native-inputs
  2072. (list sbcl-rt))
  2073. (synopsis "The anaphoric macro collection from Hell")
  2074. (description
  2075. "Anaphora is the anaphoric macro collection from Hell: it includes many
  2076. new fiends in addition to old friends like @command{aif} and
  2077. @command{awhen}.")
  2078. (home-page "https://github.com/tokenrove/anaphora")
  2079. (license license:public-domain)))
  2080. (define-public cl-anaphora
  2081. (sbcl-package->cl-source-package sbcl-anaphora))
  2082. (define-public ecl-anaphora
  2083. (sbcl-package->ecl-package sbcl-anaphora))
  2084. (define-public sbcl-let-plus
  2085. (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
  2086. (package
  2087. (name "sbcl-let-plus")
  2088. (version (git-version "0.0.0" "1" commit))
  2089. (source
  2090. (origin
  2091. (method git-fetch)
  2092. (uri (git-reference
  2093. (url "https://github.com/sharplispers/let-plus")
  2094. (commit commit)))
  2095. (sha256
  2096. (base32
  2097. "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
  2098. (file-name (git-file-name "let-plus" version))))
  2099. (build-system asdf-build-system/sbcl)
  2100. (inputs
  2101. (list sbcl-alexandria sbcl-anaphora))
  2102. (native-inputs
  2103. (list sbcl-lift))
  2104. (synopsis "Destructuring extension of let*")
  2105. (description
  2106. "This library implements the let+ macro, which is a dectructuring
  2107. extension of let*. It features:
  2108. @itemize
  2109. @item Clean, consistent syntax and small implementation (less than 300 LOC,
  2110. not counting tests)
  2111. @item Placeholder macros allow editor hints and syntax highlighting
  2112. @item @command{&ign} for ignored values (in forms where that makes sense)
  2113. @item Very easy to extend
  2114. @end itemize\n")
  2115. (home-page "https://github.com/sharplispers/let-plus")
  2116. (license license:boost1.0))))
  2117. (define-public cl-let-plus
  2118. (sbcl-package->cl-source-package sbcl-let-plus))
  2119. (define-public ecl-let-plus
  2120. (sbcl-package->ecl-package sbcl-let-plus))
  2121. (define-public sbcl-cl-colors
  2122. (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
  2123. (package
  2124. (name "sbcl-cl-colors")
  2125. (version (git-version "0.0.0" "1" commit))
  2126. (source
  2127. (origin
  2128. (method git-fetch)
  2129. (uri (git-reference
  2130. (url "https://github.com/tpapp/cl-colors")
  2131. (commit commit)))
  2132. (sha256
  2133. (base32
  2134. "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
  2135. (file-name (git-file-name "cl-colors" version))))
  2136. (build-system asdf-build-system/sbcl)
  2137. (inputs
  2138. (list sbcl-alexandria sbcl-let-plus))
  2139. (synopsis "Simple color library for Common Lisp")
  2140. (description
  2141. "This is a very simple color library for Common Lisp, providing
  2142. @itemize
  2143. @item Types for representing colors in HSV and RGB spaces.
  2144. @item Simple conversion functions between the above types (and also
  2145. hexadecimal representation for RGB).
  2146. @item Some predefined colors (currently X11 color names – of course the
  2147. library does not depend on X11).Because color in your terminal is nice.
  2148. @end itemize
  2149. This library is no longer supported by its author.")
  2150. (home-page "https://github.com/tpapp/cl-colors")
  2151. (license license:boost1.0))))
  2152. (define-public cl-colors
  2153. (sbcl-package->cl-source-package sbcl-cl-colors))
  2154. (define-public ecl-cl-colors
  2155. (sbcl-package->ecl-package sbcl-cl-colors))
  2156. (define-public sbcl-cl-ansi-text
  2157. (let ((commit "8b129d83c7511b54cdd9d4123825a2d06349b25c"))
  2158. (package
  2159. (name "sbcl-cl-ansi-text")
  2160. (version (git-version "2.0.1" "1" commit))
  2161. (source
  2162. (origin
  2163. (method git-fetch)
  2164. (uri (git-reference
  2165. (url "https://github.com/pnathan/cl-ansi-text")
  2166. (commit commit)))
  2167. (sha256
  2168. (base32
  2169. "0nk7ajqfa937w1iy3zy86jjbw8yffm05cqs4wxkgl97v6kmmya14"))
  2170. (file-name (git-file-name "cl-ansi-text" version))))
  2171. (build-system asdf-build-system/sbcl)
  2172. (inputs
  2173. (list sbcl-alexandria sbcl-cl-colors2))
  2174. (native-inputs
  2175. (list sbcl-fiveam))
  2176. (synopsis "ANSI terminal color implementation for Common Lisp")
  2177. (description
  2178. "@command{cl-ansi-text} provides utilities which enable printing to an
  2179. ANSI terminal with colored text. It provides the macro @command{with-color}
  2180. which causes everything printed in the body to be displayed with the provided
  2181. color. It further provides functions which will print the argument with the
  2182. named color.")
  2183. (home-page "https://github.com/pnathan/cl-ansi-text")
  2184. (license license:llgpl))))
  2185. (define-public cl-ansi-text
  2186. (sbcl-package->cl-source-package sbcl-cl-ansi-text))
  2187. (define-public ecl-cl-ansi-text
  2188. (sbcl-package->ecl-package sbcl-cl-ansi-text))
  2189. (define-public sbcl-proc-parse
  2190. (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
  2191. (package
  2192. (name "sbcl-proc-parse")
  2193. (version (git-version "0.0.0" "1" commit))
  2194. (source
  2195. (origin
  2196. (method git-fetch)
  2197. (uri (git-reference
  2198. (url "https://github.com/fukamachi/proc-parse")
  2199. (commit commit)))
  2200. (sha256
  2201. (base32
  2202. "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
  2203. (file-name (git-file-name "proc-parse" version))))
  2204. (build-system asdf-build-system/sbcl)
  2205. (inputs
  2206. `(("alexandria" ,sbcl-alexandria)
  2207. ("babel" ,sbcl-babel)))
  2208. (native-inputs
  2209. (list sbcl-prove))
  2210. (arguments
  2211. '(#:asd-systems '("proc-parse-test"
  2212. "proc-parse")))
  2213. (synopsis "Procedural vector parser")
  2214. (description
  2215. "This is a string/octets parser library for Common Lisp with speed and
  2216. readability in mind. Unlike other libraries, the code is not a
  2217. pattern-matching-like, but a char-by-char procedural parser.")
  2218. (home-page "https://github.com/fukamachi/proc-parse")
  2219. (license license:bsd-2))))
  2220. (define-public cl-proc-parse
  2221. (sbcl-package->cl-source-package sbcl-proc-parse))
  2222. (define-public ecl-proc-parse
  2223. (sbcl-package->ecl-package sbcl-proc-parse))
  2224. (define-public sbcl-parse-float
  2225. (let ((commit "3074765101e41222b6b624a66aaf1e6416379f9c")
  2226. (revision "2"))
  2227. (package
  2228. (name "sbcl-parse-float")
  2229. (version (git-version "0.0.0" revision commit))
  2230. (source
  2231. (origin
  2232. (method git-fetch)
  2233. (uri (git-reference
  2234. (url "https://github.com/soemraws/parse-float")
  2235. (commit commit)))
  2236. (sha256
  2237. (base32 "0jd2spawc3v8vzqf8ky4cngl45jm65fhkrdf20mf6dcbn3mzpkmr"))
  2238. (file-name (git-file-name "proc-parse" version))))
  2239. (build-system asdf-build-system/sbcl)
  2240. (arguments
  2241. ;; FIXME: https://github.com/soemraws/parse-float/issues/12
  2242. `(#:asd-systems '("parse-float" "parse-float-tests")))
  2243. (native-inputs
  2244. (list sbcl-lisp-unit))
  2245. (inputs
  2246. `(("alexandria" ,sbcl-alexandria)))
  2247. (home-page "https://github.com/soemraws/parse-float")
  2248. (synopsis "Parse a floating point value from a string in Common Lisp")
  2249. (description
  2250. "This package exports the following function to parse floating-point
  2251. values from a string in Common Lisp.")
  2252. (license license:public-domain))))
  2253. (define-public cl-parse-float
  2254. (sbcl-package->cl-source-package sbcl-parse-float))
  2255. (define-public ecl-parse-float
  2256. (sbcl-package->ecl-package sbcl-parse-float))
  2257. (define-public sbcl-cl-string-match
  2258. (let ((revision "1")
  2259. (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
  2260. (package
  2261. (name "sbcl-cl-string-match")
  2262. (version (git-version "0" revision changeset))
  2263. (source
  2264. (origin
  2265. (method hg-fetch)
  2266. (uri (hg-reference
  2267. (url "https://github.com/vityok/cl-string-match")
  2268. (changeset changeset)))
  2269. (sha256
  2270. (base32
  2271. "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
  2272. (file-name (git-file-name "cl-string-match" version))))
  2273. (build-system asdf-build-system/sbcl)
  2274. (inputs
  2275. `(("alexandria" ,sbcl-alexandria)
  2276. ("babel" ,sbcl-babel)
  2277. ("iterate" ,sbcl-iterate)
  2278. ("jpl-queues" ,sbcl-jpl-queues)
  2279. ("jpl-util" ,sbcl-jpl-util)
  2280. ("mgl-pax" ,sbcl-mgl-pax)
  2281. ("parse-float" ,sbcl-parse-float)
  2282. ("proc-parse" ,sbcl-proc-parse)
  2283. ("yacc" ,sbcl-cl-yacc)))
  2284. ;; TODO: Tests are not evaluated properly.
  2285. (native-inputs
  2286. ;; For testing:
  2287. (list sbcl-lisp-unit))
  2288. (arguments
  2289. `(#:tests? #f
  2290. #:phases
  2291. (modify-phases %standard-phases
  2292. (add-after 'unpack 'fix-dependency
  2293. (lambda _
  2294. (substitute* "cl-string-match.asd"
  2295. ((":mgl-pax")
  2296. ":mgl-pax/document")))))))
  2297. (synopsis "Set of utilities to manipulate strings in Common Lisp")
  2298. (description
  2299. "@command{cl-strings} is a small, portable, dependency-free set of
  2300. utilities that make it even easier to manipulate text in Common Lisp. It has
  2301. 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
  2302. (home-page "https://github.com/vityok/cl-string-match")
  2303. (license license:bsd-3))))
  2304. (define-public cl-string-match
  2305. (sbcl-package->cl-source-package sbcl-cl-string-match))
  2306. (define-public ecl-cl-string-match
  2307. (sbcl-package->ecl-package sbcl-cl-string-match))
  2308. (define-public sbcl-puri
  2309. (let ((commit "4bbab89d9ccbb26346899d1f496c97604fec567b")
  2310. (revision "2"))
  2311. (package
  2312. (name "sbcl-puri")
  2313. (version (git-version "1.5.7" revision commit))
  2314. (source
  2315. (origin
  2316. (method git-fetch)
  2317. (uri (git-reference
  2318. (url "http://git.kpe.io/puri.git")
  2319. (commit commit)))
  2320. (file-name (git-file-name "puri" version))
  2321. (sha256
  2322. (base32 "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd"))))
  2323. (build-system asdf-build-system/sbcl)
  2324. (native-inputs
  2325. (list sbcl-ptester))
  2326. (home-page "http://puri.kpe.io/")
  2327. (synopsis "Portable URI Library")
  2328. (description
  2329. "This is a portable Universal Resource Identifier library for Common
  2330. Lisp programs. It parses URI according to the RFC 2396 specification.")
  2331. (license license:llgpl))))
  2332. (define-public cl-puri
  2333. (sbcl-package->cl-source-package sbcl-puri))
  2334. (define-public ecl-puri
  2335. (sbcl-package->ecl-package sbcl-puri))
  2336. (define-public sbcl-qmynd
  2337. (let ((commit "7e56daf73f0ed5f49a931c01af75fb874bcf3445")
  2338. (revision "1"))
  2339. (package
  2340. (name "sbcl-qmynd")
  2341. (version (git-version "1.0.0" revision commit))
  2342. (source
  2343. (origin
  2344. (method git-fetch)
  2345. (uri (git-reference
  2346. (url "https://github.com/qitab/qmynd")
  2347. (commit commit)))
  2348. (file-name (git-file-name name version))
  2349. (sha256
  2350. (base32
  2351. "06gw5wxcpdclb6a5i5k9lbmdlyqsp182czrm9bm1cpklzbj0ihrl"))))
  2352. (build-system asdf-build-system/sbcl)
  2353. (inputs
  2354. (list sbcl-asdf-finalizers
  2355. sbcl-babel
  2356. sbcl-chipz
  2357. sbcl-cl+ssl
  2358. sbcl-flexi-streams
  2359. sbcl-ironclad
  2360. sbcl-salza2
  2361. sbcl-trivial-gray-streams
  2362. sbcl-usocket))
  2363. (home-page "https://github.com/qitab/qmynd")
  2364. (synopsis "QITAB MySQL Native Driver for Common Lisp")
  2365. (description "QMyND, the QITAB MySQL Native Driver, is a MySQL client
  2366. library that directly talks to a MySQL server in its native network protocol.
  2367. It's a part of QITAB umbrella project.")
  2368. (license license:expat))))
  2369. (define-public ecl-qmynd
  2370. (sbcl-package->ecl-package sbcl-qmynd))
  2371. (define-public cl-qmynd
  2372. (sbcl-package->cl-source-package sbcl-qmynd))
  2373. (define-public sbcl-queues
  2374. (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
  2375. (package
  2376. (name "sbcl-queues")
  2377. (version (git-version "0.0.0" "1" commit))
  2378. (source
  2379. (origin
  2380. (method git-fetch)
  2381. (uri (git-reference
  2382. (url "https://github.com/oconnore/queues")
  2383. (commit commit)))
  2384. (file-name (git-file-name "queues" version))
  2385. (sha256
  2386. (base32
  2387. "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
  2388. (build-system asdf-build-system/sbcl)
  2389. (inputs
  2390. `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
  2391. (arguments
  2392. '(#:asd-systems '("queues"
  2393. "queues.simple-queue"
  2394. "queues.simple-cqueue"
  2395. "queues.priority-queue"
  2396. "queues.priority-cqueue")))
  2397. (home-page "https://github.com/oconnore/queues")
  2398. (synopsis "Common Lisp queue library")
  2399. (description
  2400. "This is a simple queue library for Common Lisp with features such as
  2401. non-consing thread safe queues and fibonacci priority queues.")
  2402. (license license:expat))))
  2403. (define-public cl-queues
  2404. (sbcl-package->cl-source-package sbcl-queues))
  2405. (define-public ecl-queues
  2406. (sbcl-package->ecl-package sbcl-queues))
  2407. (define-public sbcl-glsl-packing
  2408. (let ((commit "03628159468a8e5b7f2a1d5e78b77053e136794a")
  2409. (revision "1"))
  2410. (package
  2411. (name "sbcl-glsl-packing")
  2412. (version (git-version "0.0.0" revision commit))
  2413. (source
  2414. (origin
  2415. (method git-fetch)
  2416. (uri (git-reference
  2417. (url "https://github.com/3b/glsl-packing/")
  2418. (commit commit)))
  2419. (file-name (git-file-name "glsl-packing" version))
  2420. (sha256
  2421. (base32 "0k2f1771wd9kdrcasldy1r00k5bdgi9fd07in52zmjggc0i7dd80"))))
  2422. (build-system asdf-build-system/sbcl)
  2423. (inputs
  2424. (list sbcl-alexandria))
  2425. (home-page "https://github.com/3b/glsl-packing/")
  2426. (synopsis "Common Lisp utilities to calculate OpenGL layouts")
  2427. (description
  2428. "This is a Common Lisp library to calculate std140 or std430 layouts for
  2429. a glsl UBO/SSBO.")
  2430. (license license:expat))))
  2431. (define-public ecl-glsl-packing
  2432. (sbcl-package->ecl-package sbcl-glsl-packing))
  2433. (define-public cl-glsl-packing
  2434. (sbcl-package->cl-source-package sbcl-glsl-packing))
  2435. (define-public sbcl-glsl-spec
  2436. (let ((commit "f04476f7da89355ae6856b33283c60ba95c6555d")
  2437. (revision "1"))
  2438. (package
  2439. (name "sbcl-glsl-spec")
  2440. (version (git-version "0.0.0" revision commit))
  2441. (source
  2442. (origin
  2443. (method git-fetch)
  2444. (uri (git-reference
  2445. (url "https://github.com/cbaggers/glsl-spec")
  2446. (commit commit)))
  2447. (file-name (git-file-name "glsl-spec" version))
  2448. (sha256
  2449. (base32 "01ipspr22fgfj3w8wq2y81lzrjc4vpfiwnr3dqhjlpzzra46am8c"))))
  2450. (build-system asdf-build-system/sbcl)
  2451. (arguments
  2452. `(#:asd-systems '("glsl-spec" "glsl-symbols" "glsl-docs")))
  2453. (home-page "https://github.com/cbaggers/glsl-spec")
  2454. (synopsis "Common Lisp GLSL specification as a datastructure")
  2455. (description
  2456. "This package contains the specification of all functions and variables
  2457. from GLSL as data.")
  2458. (license license:unlicense))))
  2459. (define-public ecl-glsl-spec
  2460. (sbcl-package->ecl-package sbcl-glsl-spec))
  2461. (define-public cl-glsl-spec
  2462. (sbcl-package->cl-source-package sbcl-glsl-spec))
  2463. (define-public sbcl-rtg-math
  2464. (let ((commit "29fc5b3d0028a4a11a82355ecc8cca62662c69e0")
  2465. (revision "1"))
  2466. (package
  2467. (name "sbcl-rtg-math")
  2468. (version (git-version "0.0.0" revision commit))
  2469. (source
  2470. (origin
  2471. (method git-fetch)
  2472. (uri (git-reference
  2473. (url "https://github.com/cbaggers/rtg-math")
  2474. (commit commit)))
  2475. (file-name (git-file-name "rtg-math" version))
  2476. (sha256
  2477. (base32 "0bhxxnv7ldkkb18zdxyz2rj2a3iawzq2kcp7cn5i91iby7n0082x"))))
  2478. (build-system asdf-build-system/sbcl)
  2479. (inputs
  2480. (list sbcl-alexandria sbcl-documentation-utils sbcl-glsl-spec))
  2481. (home-page "https://github.com/cbaggers/rtg-math")
  2482. (synopsis "Common Lisp library of game-related math functions")
  2483. (description
  2484. "RTG-MATH provides a selection of the math routines most commonly needed
  2485. for making realtime graphics in Lisp.")
  2486. (license license:bsd-2))))
  2487. (define-public ecl-rtg-math
  2488. (sbcl-package->ecl-package sbcl-rtg-math))
  2489. (define-public cl-rtg-math
  2490. (sbcl-package->cl-source-package sbcl-rtg-math))
  2491. (define-public sbcl-varjo
  2492. (let ((commit "9e77f30220053155d2ef8870ceba157f75e538d4")
  2493. (revision "1"))
  2494. (package
  2495. (name "sbcl-varjo")
  2496. (version (git-version "0.0.0" revision commit))
  2497. (source
  2498. (origin
  2499. (method git-fetch)
  2500. (uri (git-reference
  2501. (url "https://github.com/cbaggers/varjo")
  2502. (commit commit)))
  2503. (file-name (git-file-name "varjo" version))
  2504. (sha256
  2505. (base32 "1p9x1wj576x5d31yvls9r1avkjkyhri7kyxbjfkg9z93a1w18j9z"))))
  2506. (build-system asdf-build-system/sbcl)
  2507. (native-inputs
  2508. (list sbcl-fiveam))
  2509. (inputs
  2510. (list sbcl-alexandria
  2511. sbcl-cl-ppcre
  2512. sbcl-documentation-utils
  2513. sbcl-fn
  2514. sbcl-glsl-spec
  2515. sbcl-named-readtables
  2516. sbcl-parse-float
  2517. sbcl-vas-string-metrics))
  2518. (home-page "https://github.com/cbaggers/varjo")
  2519. (synopsis "Lisp to GLSL Language Translator")
  2520. (description
  2521. "Varjo is a Lisp to GLSL compiler. Vari is the dialect of lisp Varjo
  2522. compiles. It aims to be as close to Common Lisp as possible, but naturally it
  2523. is statically typed so there are differences.")
  2524. (license license:bsd-2))))
  2525. (define-public ecl-varjo
  2526. (sbcl-package->ecl-package sbcl-varjo))
  2527. (define-public cl-varjo
  2528. (sbcl-package->cl-source-package sbcl-varjo))
  2529. (define-public sbcl-cffi
  2530. (package
  2531. (name "sbcl-cffi")
  2532. (version "0.24.1")
  2533. (source
  2534. (origin
  2535. (method git-fetch)
  2536. (uri (git-reference
  2537. (url "https://github.com/cffi/cffi")
  2538. (commit (string-append "v" version))))
  2539. (file-name (git-file-name "cffi-bootstrap" version))
  2540. (sha256
  2541. (base32 "17ryim4xilb1rzxydfr7595dnhqkk02lmrbkqrkvi9091shi4cj3"))))
  2542. (build-system asdf-build-system/sbcl)
  2543. (inputs
  2544. `(("alexandria" ,sbcl-alexandria)
  2545. ("babel" ,sbcl-babel)
  2546. ("libffi" ,libffi)
  2547. ("trivial-features" ,sbcl-trivial-features)))
  2548. (native-inputs
  2549. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  2550. ("pkg-config" ,pkg-config)
  2551. ("rt" ,sbcl-rt)))
  2552. (arguments
  2553. '(#:phases
  2554. (modify-phases %standard-phases
  2555. (add-after 'unpack 'fix-arm-support
  2556. (lambda _
  2557. ;; This is apparently deprecated since libffi-3.3.
  2558. (substitute* "libffi/libffi-types.lisp"
  2559. (("\\\(\\\(:unix64.*") ")\n"))
  2560. #t))
  2561. (add-after 'unpack 'fix-paths
  2562. (lambda* (#:key inputs #:allow-other-keys)
  2563. (substitute* "libffi/libffi.lisp"
  2564. (("libffi.so.7" all) (string-append
  2565. (assoc-ref inputs "libffi")
  2566. "/lib/" all)))
  2567. (substitute* "toolchain/c-toolchain.lisp"
  2568. (("\"cc\"") (format #f "~S" (which "gcc"))))))
  2569. (add-after 'build 'install-headers
  2570. (lambda* (#:key outputs #:allow-other-keys)
  2571. (install-file "grovel/common.h"
  2572. (string-append
  2573. (assoc-ref outputs "out")
  2574. "/include/grovel")))))
  2575. #:asd-files '("cffi.asd"
  2576. "cffi-toolchain.asd"
  2577. "cffi-grovel.asd"
  2578. "cffi-libffi.asd"
  2579. "cffi-uffi-compat.asd")
  2580. #:asd-systems '("cffi"
  2581. "cffi-libffi"
  2582. "cffi-uffi-compat")))
  2583. (home-page "https://common-lisp.net/project/cffi/")
  2584. (synopsis "Common Foreign Function Interface for Common Lisp")
  2585. (description "The Common Foreign Function Interface (CFFI)
  2586. purports to be a portable foreign function interface for Common Lisp.
  2587. The CFFI library is composed of a Lisp-implementation-specific backend
  2588. in the CFFI-SYS package, and a portable frontend in the CFFI
  2589. package.")
  2590. (license license:expat)))
  2591. (define-public cl-cffi
  2592. (sbcl-package->cl-source-package sbcl-cffi))
  2593. (define-public ecl-cffi
  2594. (sbcl-package->ecl-package sbcl-cffi))
  2595. (define-public sbcl-cffi-c-ref
  2596. (let ((commit "8123cbb6034c5f7921a0766107cfb8c4e8efd5ce")
  2597. (revision "0"))
  2598. (package
  2599. (name "sbcl-cffi-c-ref")
  2600. (version (git-version "1.0" revision commit))
  2601. (source
  2602. (origin
  2603. (method git-fetch)
  2604. (uri (git-reference
  2605. (url "https://github.com/borodust/cffi-c-ref")
  2606. (commit commit)))
  2607. (sha256
  2608. (base32 "1a3pp6xcisabqir3rp1gvvjfdxcvpm8yr35p38nri9azsinmmc7z"))
  2609. (file-name (git-file-name "cffi-c-ref" version))))
  2610. (build-system asdf-build-system/sbcl)
  2611. (inputs
  2612. (list sbcl-alexandria sbcl-cffi))
  2613. (synopsis "Streamlined access to foreign memory")
  2614. (description
  2615. "This Common Lisp library provides macros to access foreign memory.")
  2616. (home-page "https://github.com/borodust/cffi-c-ref")
  2617. (license license:expat))))
  2618. (define-public cl-cffi-c-ref
  2619. (sbcl-package->cl-source-package sbcl-cffi-c-ref))
  2620. (define-public ecl-cffi-c-ref
  2621. (sbcl-package->ecl-package sbcl-cffi-c-ref))
  2622. (define-public sbcl-cl-sqlite
  2623. (package
  2624. (name "sbcl-cl-sqlite")
  2625. (version "0.2.1")
  2626. (source
  2627. (origin
  2628. (method git-fetch)
  2629. (uri (git-reference
  2630. (url "https://github.com/dmitryvk/cl-sqlite")
  2631. (commit version)))
  2632. (file-name (git-file-name "cl-sqlite" version))
  2633. (sha256
  2634. (base32
  2635. "08iv7b4m0hh7qx2cvq4f510nrgdld0vicnvmqsh9w0fgrcgmyg4k"))))
  2636. (build-system asdf-build-system/sbcl)
  2637. (inputs
  2638. `(("iterate" ,sbcl-iterate)
  2639. ("cffi" ,sbcl-cffi)
  2640. ("sqlite" ,sqlite)))
  2641. (native-inputs
  2642. `(("fiveam" ,sbcl-fiveam)
  2643. ("bordeaux-threads" ,sbcl-bordeaux-threads)))
  2644. (arguments
  2645. `(#:asd-systems '("sqlite")
  2646. #:phases
  2647. (modify-phases %standard-phases
  2648. (add-after 'unpack 'fix-paths
  2649. (lambda* (#:key inputs #:allow-other-keys)
  2650. (substitute* "sqlite-ffi.lisp"
  2651. (("libsqlite3" all) (string-append
  2652. (assoc-ref inputs "sqlite")"/lib/" all))))))))
  2653. (home-page "https://common-lisp.net/project/cl-sqlite/")
  2654. (synopsis "Common Lisp binding for SQLite")
  2655. (description
  2656. "The @command{cl-sqlite} package is an interface to the SQLite embedded
  2657. relational database engine.")
  2658. (license license:public-domain)))
  2659. (define-public cl-sqlite
  2660. (sbcl-package->cl-source-package sbcl-cl-sqlite))
  2661. (define-public ecl-cl-sqlite
  2662. (sbcl-package->ecl-package sbcl-cl-sqlite))
  2663. (define-public sbcl-cl-redis
  2664. (let ((commit "7d592417421cf7cd1cffa96043b457af0490df7d")
  2665. (revision "0"))
  2666. (package
  2667. (name "sbcl-cl-redis")
  2668. (version (git-version "2.3.8" revision commit))
  2669. (source
  2670. (origin
  2671. (method git-fetch)
  2672. (uri (git-reference
  2673. (url "https://github.com/vseloved/cl-redis")
  2674. (commit commit)))
  2675. (file-name (git-file-name "cl-redis" version))
  2676. (sha256
  2677. (base32 "0x5ahxb5cx37biyn3cjycshhm1rr9p5cf1a9l5hd1n1xjxm2f8vi"))))
  2678. (build-system asdf-build-system/sbcl)
  2679. (arguments
  2680. '(#:phases
  2681. (modify-phases %standard-phases
  2682. (add-before 'check 'start-redis
  2683. (lambda _
  2684. (system "redis-server --port 6379 &"))))))
  2685. (native-inputs
  2686. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  2687. ("flexi-streams" ,sbcl-flexi-streams)
  2688. ("redis" ,redis)
  2689. ("should-test" ,sbcl-should-test)))
  2690. (inputs
  2691. `(("babel" ,sbcl-babel)
  2692. ("cl-ppcre" ,sbcl-cl-ppcre)
  2693. ("flexi-streams" ,sbcl-flexi-streams)
  2694. ("rutils" ,sbcl-rutils)
  2695. ("usocket" ,sbcl-usocket)))
  2696. (home-page "https://github.com/vseloved/cl-redis")
  2697. (synopsis "Common Lisp client for Redis")
  2698. (description "This is a Common Lisp wrapper for interacting with the
  2699. Redis data structure store.")
  2700. (license license:expat))))
  2701. (define-public cl-redis
  2702. (sbcl-package->cl-source-package sbcl-cl-redis))
  2703. (define-public ecl-cl-redis
  2704. (let ((pkg (sbcl-package->ecl-package sbcl-cl-redis)))
  2705. (package
  2706. (inherit pkg)
  2707. (arguments
  2708. (substitute-keyword-arguments (package-arguments pkg)
  2709. ;; Tests are failing on ECL with:
  2710. ;; Test L-COMMANDS: An error occurred during initialization:
  2711. ;; Protocol not found: "tcp".
  2712. ((#:tests? _ #f) #f))))))
  2713. (define-public sbcl-parenscript
  2714. ;; Source archives are overwritten on every release, we use the Git repo instead.
  2715. (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
  2716. (package
  2717. (name "sbcl-parenscript")
  2718. (version (git-version "2.7.1" "1" commit))
  2719. (source
  2720. (origin
  2721. (method git-fetch)
  2722. (uri (git-reference
  2723. (url "https://gitlab.common-lisp.net/parenscript/parenscript")
  2724. (commit commit)))
  2725. (file-name (git-file-name "parenscript" version))
  2726. (sha256
  2727. (base32
  2728. "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
  2729. (build-system asdf-build-system/sbcl)
  2730. (inputs
  2731. (list sbcl-cl-ppcre sbcl-anaphora sbcl-named-readtables))
  2732. (home-page "https://common-lisp.net/project/parenscript/")
  2733. (synopsis "Translator from a subset of Common Lisp to JavaScript")
  2734. (description
  2735. "Parenscript is a translator from an extended subset of Common Lisp to
  2736. JavaScript. Parenscript code can run almost identically on both the
  2737. browser (as JavaScript) and server (as Common Lisp).
  2738. Parenscript code is treated the same way as Common Lisp code, making the full
  2739. power of Lisp macros available for JavaScript. This provides a web
  2740. development environment that is unmatched in its ability to reduce code
  2741. duplication and provide advanced meta-programming facilities to web
  2742. developers.
  2743. At the same time, Parenscript is different from almost all other \"language
  2744. X\" to JavaScript translators in that it imposes almost no overhead:
  2745. @itemize
  2746. @item No run-time dependencies: Any piece of Parenscript code is runnable
  2747. as-is. There are no JavaScript files to include.
  2748. @item Native types: Parenscript works entirely with native JavaScript data
  2749. types. There are no new types introduced, and object prototypes are not
  2750. touched.
  2751. @item Native calling convention: Any JavaScript code can be called without the
  2752. need for bindings. Likewise, Parenscript can be used to make efficient,
  2753. self-contained JavaScript libraries.
  2754. @item Readable code: Parenscript generates concise, formatted, idiomatic
  2755. JavaScript code. Identifier names are preserved. This enables seamless
  2756. debugging in tools like Firebug.
  2757. @item Efficiency: Parenscript introduces minimal overhead for advanced Common
  2758. Lisp features. The generated code is almost as fast as hand-written
  2759. JavaScript.
  2760. @end itemize\n")
  2761. (license license:bsd-3))))
  2762. (define-public cl-parenscript
  2763. (sbcl-package->cl-source-package sbcl-parenscript))
  2764. (define-public ecl-parenscript
  2765. (sbcl-package->ecl-package sbcl-parenscript))
  2766. (define-public sbcl-cl-json
  2767. (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
  2768. (package
  2769. (name "sbcl-cl-json")
  2770. (version (git-version "0.5" "1" commit))
  2771. (source
  2772. (origin
  2773. (method git-fetch)
  2774. (uri (git-reference
  2775. (url "https://github.com/hankhero/cl-json")
  2776. (commit commit)))
  2777. (file-name (git-file-name "cl-json" version))
  2778. (sha256
  2779. (base32
  2780. "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
  2781. (build-system asdf-build-system/sbcl)
  2782. (native-inputs
  2783. (list sbcl-fiveam))
  2784. (home-page "https://github.com/hankhero/cl-json")
  2785. (synopsis "JSON encoder and decoder for Common-Lisp")
  2786. (description
  2787. "@command{cl-json} provides an encoder of Lisp objects to JSON format
  2788. and a corresponding decoder of JSON data to Lisp objects. Both the encoder
  2789. and the decoder are highly customizable; at the same time, the default
  2790. settings ensure a very simple mode of operation, similar to that provided by
  2791. @command{yason} or @command{st-json}.")
  2792. (license license:expat))))
  2793. (define-public cl-json
  2794. (sbcl-package->cl-source-package sbcl-cl-json))
  2795. (define-public ecl-cl-json
  2796. (sbcl-package->ecl-package sbcl-cl-json))
  2797. (define-public sbcl-unix-opts
  2798. (let ((commit "0e61f34b2ecf62288437810d4abb31e572048b04")
  2799. (revision "1"))
  2800. (package
  2801. (name "sbcl-unix-opts")
  2802. (version (git-version "0.1.7" revision commit))
  2803. (source
  2804. (origin
  2805. (method git-fetch)
  2806. (uri (git-reference
  2807. (url "https://github.com/libre-man/unix-opts")
  2808. (commit commit)))
  2809. (file-name (git-file-name "unix-opts" version))
  2810. (sha256
  2811. (base32 "16mcqpzwrz808p9n3wwl99ckg3hg7yihw08y1i4l7c92aldbkasq"))))
  2812. (build-system asdf-build-system/sbcl)
  2813. (home-page "https://github.com/hankhero/cl-json")
  2814. (synopsis "Unix-style command line options parser")
  2815. (description
  2816. "This is a minimalistic parser of command line options. The main
  2817. advantage of the library is the ability to concisely define command line
  2818. options once and then use this definition for parsing and extraction of
  2819. command line arguments, as well as printing description of command line
  2820. options (you get --help for free). This way you don't need to repeat
  2821. yourself. Also, @command{unix-opts} doesn't depend on anything and
  2822. precisely controls the behavior of the parser via Common Lisp restarts.")
  2823. (license license:expat))))
  2824. (define-public cl-unix-opts
  2825. (sbcl-package->cl-source-package sbcl-unix-opts))
  2826. (define-public ecl-unix-opts
  2827. (sbcl-package->ecl-package sbcl-unix-opts))
  2828. (define-public sbcl-trivial-garbage
  2829. (package
  2830. (name "sbcl-trivial-garbage")
  2831. (version "0.21")
  2832. (source
  2833. (origin
  2834. (method git-fetch)
  2835. (uri (git-reference
  2836. (url "https://github.com/trivial-garbage/trivial-garbage")
  2837. (commit (string-append "v" version))))
  2838. (file-name (git-file-name "trivial-garbage" version))
  2839. (sha256
  2840. (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
  2841. (build-system asdf-build-system/sbcl)
  2842. (native-inputs
  2843. (list sbcl-rt))
  2844. (home-page "https://common-lisp.net/project/trivial-garbage/")
  2845. (synopsis "Portable GC-related APIs for Common Lisp")
  2846. (description "@command{trivial-garbage} provides a portable API to
  2847. finalizers, weak hash-tables and weak pointers on all major implementations of
  2848. the Common Lisp programming language.")
  2849. (license license:public-domain)))
  2850. (define-public cl-trivial-garbage
  2851. (sbcl-package->cl-source-package sbcl-trivial-garbage))
  2852. (define-public ecl-trivial-garbage
  2853. (sbcl-package->ecl-package sbcl-trivial-garbage))
  2854. (define-public sbcl-closer-mop
  2855. (let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
  2856. (package
  2857. (name "sbcl-closer-mop")
  2858. (version (git-version "1.0.0" "2" commit))
  2859. (source
  2860. (origin
  2861. (method git-fetch)
  2862. (uri (git-reference
  2863. (url "https://github.com/pcostanza/closer-mop")
  2864. (commit commit)))
  2865. (sha256
  2866. (base32 "1w3x087wvlwkd6swfdgbvjfs6kazf0la8ax4pjfzikwjch4snn2c"))
  2867. (file-name (git-file-name "closer-mop" version ))))
  2868. (build-system asdf-build-system/sbcl)
  2869. (home-page "https://github.com/pcostanza/closer-mop")
  2870. (synopsis "Rectifies absent or incorrect CLOS MOP features")
  2871. (description "Closer to MOP is a compatibility layer that rectifies many
  2872. of the absent or incorrect CLOS MOP features across a broad range of Common
  2873. Lisp implementations.")
  2874. (license license:expat))))
  2875. (define-public cl-closer-mop
  2876. (sbcl-package->cl-source-package sbcl-closer-mop))
  2877. (define-public ecl-closer-mop
  2878. (sbcl-package->ecl-package sbcl-closer-mop))
  2879. (define-public sbcl-cl-cffi-gtk
  2880. (let ((commit "e9a46df65995d9a16e6c8dbdc1e09b775eb4a966"))
  2881. (package
  2882. (name "sbcl-cl-cffi-gtk")
  2883. (version (git-version "0.11.2" "2" commit))
  2884. (source
  2885. (origin
  2886. (method git-fetch)
  2887. (uri (git-reference
  2888. (url "https://github.com/Ferada/cl-cffi-gtk/")
  2889. (commit commit)))
  2890. (file-name (git-file-name "cl-cffi-gtk" version))
  2891. (sha256
  2892. (base32
  2893. "04vix0gmqsj91lm975sx7jhlnz5gq1xf9jp873mp7c8frc5dk1jj"))))
  2894. (build-system asdf-build-system/sbcl)
  2895. (native-inputs
  2896. (list sbcl-fiveam))
  2897. (inputs
  2898. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  2899. ("cairo" ,cairo)
  2900. ("cffi" ,sbcl-cffi)
  2901. ("closer-mop" ,sbcl-closer-mop)
  2902. ("gdk-pixbuf" ,gdk-pixbuf)
  2903. ("glib" ,glib)
  2904. ("gtk" ,gtk+)
  2905. ("iterate" ,sbcl-iterate)
  2906. ("pango" ,pango)
  2907. ("trivial-features" ,sbcl-trivial-features)
  2908. ("trivial-garbage" ,sbcl-trivial-garbage)))
  2909. (arguments
  2910. `(#:asd-files '("gtk/cl-cffi-gtk.asd"
  2911. "glib/cl-cffi-gtk-glib.asd"
  2912. "gobject/cl-cffi-gtk-gobject.asd"
  2913. "gio/cl-cffi-gtk-gio.asd"
  2914. "cairo/cl-cffi-gtk-cairo.asd"
  2915. "pango/cl-cffi-gtk-pango.asd"
  2916. "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
  2917. "gdk/cl-cffi-gtk-gdk.asd")
  2918. #:test-asd-file "test/cl-cffi-gtk-test.asd"
  2919. ;; TODO: Tests fail with memory fault.
  2920. ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
  2921. #:tests? #f
  2922. #:phases
  2923. (modify-phases %standard-phases
  2924. (add-after 'unpack 'fix-paths
  2925. (lambda* (#:key inputs #:allow-other-keys)
  2926. (substitute* "glib/glib.init.lisp"
  2927. (("libglib|libgthread" all)
  2928. (string-append (assoc-ref inputs "glib") "/lib/" all)))
  2929. (substitute* "gobject/gobject.init.lisp"
  2930. (("libgobject" all)
  2931. (string-append (assoc-ref inputs "glib") "/lib/" all)))
  2932. (substitute* "gio/gio.init.lisp"
  2933. (("libgio" all)
  2934. (string-append (assoc-ref inputs "glib") "/lib/" all)))
  2935. (substitute* "cairo/cairo.init.lisp"
  2936. (("libcairo" all)
  2937. (string-append (assoc-ref inputs "cairo") "/lib/" all)))
  2938. (substitute* "pango/pango.init.lisp"
  2939. (("libpango" all)
  2940. (string-append (assoc-ref inputs "pango") "/lib/" all)))
  2941. (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
  2942. (("libgdk_pixbuf" all)
  2943. (string-append (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))
  2944. (substitute* "gdk/gdk.init.lisp"
  2945. (("libgdk" all)
  2946. (string-append (assoc-ref inputs "gtk") "/lib/" all)))
  2947. (substitute* "gdk/gdk.package.lisp"
  2948. (("libgtk" all)
  2949. (string-append (assoc-ref inputs "gtk") "/lib/" all))))))))
  2950. (home-page "https://github.com/Ferada/cl-cffi-gtk/")
  2951. (synopsis "Common Lisp binding for GTK+3")
  2952. (description
  2953. "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
  2954. is a library for creating graphical user interfaces.")
  2955. (license license:lgpl3))))
  2956. (define-public cl-cffi-gtk
  2957. (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
  2958. (define-public ecl-cl-cffi-gtk
  2959. (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
  2960. (define-public sbcl-cl-webkit
  2961. (package
  2962. (name "sbcl-cl-webkit")
  2963. (version "3.5.0")
  2964. (source
  2965. (origin
  2966. (method git-fetch)
  2967. (uri (git-reference
  2968. (url "https://github.com/joachifm/cl-webkit")
  2969. (commit version)))
  2970. (file-name (git-file-name "cl-webkit" version))
  2971. (sha256
  2972. (base32
  2973. "1a16dka15lqzpli0f0qd3afmi14vgdxnfkn9z9d1r4cw9p11s71l"))))
  2974. (build-system asdf-build-system/sbcl)
  2975. (inputs
  2976. `(("cffi" ,sbcl-cffi)
  2977. ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
  2978. ("webkitgtk" ,webkitgtk)))
  2979. (native-inputs
  2980. `(;; Tests seem to need Xorg.
  2981. ;; ("xorg-server" ,xorg-server-for-tests)
  2982. ("calispel" ,sbcl-calispel)
  2983. ("fiveam" ,sbcl-fiveam)
  2984. ("float-features" ,sbcl-float-features)))
  2985. (arguments
  2986. `(#:asd-systems '("cl-webkit2")
  2987. #:tests? #f ; TODO: Tests hang, why?
  2988. #:phases
  2989. (modify-phases %standard-phases
  2990. ;; The following phase is needed for tests:
  2991. ;; (add-before 'check 'start-xorg-server
  2992. ;; (lambda* (#:key inputs #:allow-other-keys)
  2993. ;; ;; The test suite requires a running X server.
  2994. ;; (system (string-append (assoc-ref inputs "xorg-server")
  2995. ;; "/bin/Xvfb :1 &"))
  2996. ;; (setenv "DISPLAY" ":1")
  2997. ;; #t))
  2998. (add-after 'unpack 'fix-paths
  2999. (lambda* (#:key inputs #:allow-other-keys)
  3000. (substitute* "webkit2/webkit2.init.lisp"
  3001. (("libwebkit2gtk" all)
  3002. (string-append
  3003. (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
  3004. (home-page "https://github.com/joachifm/cl-webkit")
  3005. (synopsis "Binding to WebKitGTK+ for Common Lisp")
  3006. (description
  3007. "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
  3008. currently targeting WebKit version 2. The WebKitGTK+ library adds web
  3009. browsing capabilities to an application, leveraging the full power of the
  3010. WebKit browsing engine.")
  3011. (license license:expat)))
  3012. (define-public cl-webkit
  3013. (sbcl-package->cl-source-package sbcl-cl-webkit))
  3014. (define-public ecl-cl-webkit
  3015. (sbcl-package->ecl-package sbcl-cl-webkit))
  3016. (define-public sbcl-lparallel
  3017. (package
  3018. (name "sbcl-lparallel")
  3019. (version "2.8.4")
  3020. (source
  3021. (origin
  3022. (method git-fetch)
  3023. (uri (git-reference
  3024. (url "https://github.com/lmj/lparallel/")
  3025. (commit (string-append "lparallel-" version))))
  3026. (file-name (git-file-name "lparallel" version))
  3027. (sha256
  3028. (base32
  3029. "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
  3030. (build-system asdf-build-system/sbcl)
  3031. (inputs
  3032. `(("alexandria" ,sbcl-alexandria)
  3033. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  3034. ("trivial-garbage" ,sbcl-trivial-garbage)))
  3035. (arguments
  3036. `(#:phases
  3037. (modify-phases %standard-phases
  3038. (add-after 'unpack 'fix-dependency
  3039. ;; lparallel loads a SBCL specific system in its asd file. This is
  3040. ;; not carried over into the fasl which is generated. In order for
  3041. ;; it to be carried over, it needs to be listed as a dependency.
  3042. (lambda _
  3043. (substitute* "lparallel.asd"
  3044. ((":depends-on \\(:alexandria" all)
  3045. (string-append all " #+sbcl :sb-cltl2"))))))))
  3046. (home-page "https://lparallel.org/")
  3047. (synopsis "Parallelism for Common Lisp")
  3048. (description
  3049. "@command{lparallel} is a library for parallel programming in Common
  3050. Lisp, featuring:
  3051. @itemize
  3052. @item a simple model of task submission with receiving queue,
  3053. @item constructs for expressing fine-grained parallelism,
  3054. @item asynchronous condition handling across thread boundaries,
  3055. @item parallel versions of map, reduce, sort, remove, and many others,
  3056. @item promises, futures, and delayed evaluation constructs,
  3057. @item computation trees for parallelizing interconnected tasks,
  3058. @item bounded and unbounded FIFO queues,
  3059. @item high and low priority tasks,
  3060. @item task killing by category,
  3061. @item integrated timeouts.
  3062. @end itemize\n")
  3063. (license license:expat)))
  3064. (define-public cl-lparallel
  3065. (sbcl-package->cl-source-package sbcl-lparallel))
  3066. (define-public ecl-lparallel
  3067. (package
  3068. (inherit (sbcl-package->ecl-package sbcl-lparallel))
  3069. (arguments
  3070. ;; TODO: Find why the tests get stuck forever; disable them for now.
  3071. `(#:tests? #f))))
  3072. (define-public sbcl-cl-markup
  3073. (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
  3074. (package
  3075. (name "sbcl-cl-markup")
  3076. (version (git-version "0.1" "1" commit))
  3077. (source
  3078. (origin
  3079. (method git-fetch)
  3080. (uri (git-reference
  3081. (url "https://github.com/arielnetworks/cl-markup/")
  3082. (commit commit)))
  3083. (file-name (git-file-name "cl-markup" version))
  3084. (sha256
  3085. (base32
  3086. "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7"))))
  3087. (build-system asdf-build-system/sbcl)
  3088. (home-page "https://github.com/arielnetworks/cl-markup/")
  3089. (synopsis "Markup generation library for Common Lisp")
  3090. (description
  3091. "A modern markup generation library for Common Lisp that features:
  3092. @itemize
  3093. @item Fast (even faster through compiling the code)
  3094. @item Safety
  3095. @item Support for multiple document types (markup, xml, html, html5, xhtml)
  3096. @item Output with doctype
  3097. @item Direct output to stream
  3098. @end itemize\n")
  3099. (license license:lgpl3+))))
  3100. (define-public cl-markup
  3101. (sbcl-package->cl-source-package sbcl-cl-markup))
  3102. (define-public ecl-cl-markup
  3103. (sbcl-package->ecl-package sbcl-cl-markup))
  3104. ;;; The following package is renamed from "markup" to "markup-reader" in order
  3105. ;;; not to conflict with the "cl-markup" package.
  3106. (define-public sbcl-markup-reader
  3107. (let ((commit "d2d4d7b073554f47c24223a9304452966608702e")
  3108. (revision "1"))
  3109. (package
  3110. (name "sbcl-markup-reader")
  3111. (version (git-version "0.0.1" revision commit))
  3112. (source
  3113. (origin
  3114. (method git-fetch)
  3115. (uri (git-reference
  3116. (url "https://github.com/moderninterpreters/markup")
  3117. (commit commit)))
  3118. (file-name (git-file-name "markup-reader" version))
  3119. (sha256
  3120. (base32 "0i3v938j8zpzkd6p9j8gadp5zndjcdxhswj1qgsp592v6497rpzj"))))
  3121. (build-system asdf-build-system/sbcl)
  3122. (arguments
  3123. '(#:asd-systems '("markup")))
  3124. (native-inputs
  3125. (list sbcl-fiveam))
  3126. (inputs
  3127. `(("alexandria" ,sbcl-alexandria)
  3128. ("cl-str" ,sbcl-cl-str)
  3129. ("named-readtables" ,sbcl-named-readtables)
  3130. ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
  3131. (home-page "https://github.com/moderninterpreters/markup")
  3132. (synopsis "Reader-macro to read HTML tags inside of Common Lisp code")
  3133. (description
  3134. "Markup allows the use of HTML syntax with in Common Lisp code.
  3135. This has the advantage of being able to copy HTML snippets and have them
  3136. instantly be functional, less double quotes than a s-expression approach,
  3137. and designers will be able to understand the embedded HTML.")
  3138. (license license:asl2.0))))
  3139. (define-public ecl-markup-reader
  3140. (sbcl-package->ecl-package sbcl-markup-reader))
  3141. (define-public cl-markup-reader
  3142. (sbcl-package->cl-source-package sbcl-markup-reader))
  3143. (define-public sbcl-cl-mustache
  3144. (package
  3145. (name "sbcl-cl-mustache")
  3146. (version "0.12.1")
  3147. (source
  3148. (origin
  3149. (method git-fetch)
  3150. (uri (git-reference
  3151. (url "https://github.com/kanru/cl-mustache")
  3152. (commit (string-append "v" version))))
  3153. (file-name (git-file-name "cl-mustache" version))
  3154. (sha256
  3155. (base32 "149xbb6wxq1napliwm9cv729hwcgfnjli6y8hingfixz7f10lhks"))))
  3156. (build-system asdf-build-system/sbcl)
  3157. (home-page "https://github.com/kanru/cl-mustache")
  3158. (synopsis "Common Lisp Mustache template renderer")
  3159. (description "This is a Common Lisp implementation for the Mustache
  3160. template system. More details on the standard are available at
  3161. @url{https://mustache.github.io}.")
  3162. (license license:expat)))
  3163. (define-public cl-mustache
  3164. (sbcl-package->cl-source-package sbcl-cl-mustache))
  3165. (define-public ecl-cl-mustache
  3166. (sbcl-package->ecl-package sbcl-cl-mustache))
  3167. (define-public sbcl-cl-css
  3168. (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f"))
  3169. (package
  3170. (name "sbcl-cl-css")
  3171. (version (git-version "0.1" "1" commit))
  3172. (source
  3173. (origin
  3174. (method git-fetch)
  3175. (uri (git-reference
  3176. (url "https://github.com/inaimathi/cl-css/")
  3177. (commit commit)))
  3178. (file-name (git-file-name "cl-css" version))
  3179. (sha256
  3180. (base32
  3181. "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd"))))
  3182. (build-system asdf-build-system/sbcl)
  3183. (home-page "https://github.com/inaimathi/cl-css/")
  3184. (synopsis "Non-validating, inline CSS generator for Common Lisp")
  3185. (description
  3186. "This is a dead-simple, non validating, inline CSS generator for Common
  3187. Lisp. Its goals are axiomatic syntax, simple implementation to support
  3188. portability, and boilerplate reduction in CSS.")
  3189. (license license:expat))))
  3190. (define-public cl-css
  3191. (sbcl-package->cl-source-package sbcl-cl-css))
  3192. (define-public ecl-cl-css
  3193. (sbcl-package->ecl-package sbcl-cl-css))
  3194. (define-public sbcl-portable-threads
  3195. (let ((commit "aa26bf38338a6b068bf8bfb3375d8d8c3b0a28df"))
  3196. (package
  3197. (name "sbcl-portable-threads")
  3198. (version (git-version "2.3" "2" commit))
  3199. (source
  3200. (origin
  3201. (method git-fetch)
  3202. (uri (git-reference
  3203. (url "https://github.com/binghe/portable-threads/")
  3204. (commit commit)))
  3205. (file-name (git-file-name "portable-threads" version))
  3206. (sha256
  3207. (base32 "058ksi07vfdmhrf5mdlc833s82m1rcqfja2266520m3r8bzs8bvs"))))
  3208. (build-system asdf-build-system/sbcl)
  3209. (arguments
  3210. `(;; Tests seem broken.
  3211. #:tests? #f))
  3212. (home-page "https://github.com/binghe/portable-threads")
  3213. (synopsis "Portable threads API for Common Lisp")
  3214. (description
  3215. "Portable Threads (and Scheduled and Periodic Functions) API for Common
  3216. Lisp (from GBBopen project).")
  3217. (license license:asl2.0))))
  3218. (define-public cl-portable-threads
  3219. (sbcl-package->cl-source-package sbcl-portable-threads))
  3220. (define-public ecl-portable-threads
  3221. (sbcl-package->ecl-package sbcl-portable-threads))
  3222. (define-public sbcl-usocket
  3223. (package
  3224. (name "sbcl-usocket")
  3225. (version "0.8.3")
  3226. (source
  3227. (origin
  3228. (method git-fetch)
  3229. (uri (git-reference
  3230. (url "https://github.com/usocket/usocket/")
  3231. (commit (string-append "v" version))))
  3232. (file-name (git-file-name "usocket" version))
  3233. (sha256
  3234. (base32
  3235. "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
  3236. (build-system asdf-build-system/sbcl)
  3237. (native-inputs
  3238. (list sbcl-rt))
  3239. (inputs
  3240. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  3241. ("split-sequence" ,sbcl-split-sequence)))
  3242. (arguments
  3243. `(#:tests? #f ; FIXME: Tests need network access?
  3244. #:asd-systems '("usocket"
  3245. "usocket-server")))
  3246. (home-page "https://common-lisp.net/project/usocket/")
  3247. (synopsis "Universal socket library for Common Lisp")
  3248. (description
  3249. "This library strives to provide a portable TCP/IP and UDP/IP socket
  3250. interface for as many Common Lisp implementations as possible, while keeping
  3251. the abstraction and portability layer as thin as possible.")
  3252. (license license:expat)))
  3253. (define-public cl-usocket
  3254. (sbcl-package->cl-source-package sbcl-usocket))
  3255. (define-public ecl-usocket
  3256. (sbcl-package->ecl-package sbcl-usocket))
  3257. (define-public sbcl-s-xml
  3258. (package
  3259. (name "sbcl-s-xml")
  3260. (version "3")
  3261. (source
  3262. (origin
  3263. (method url-fetch)
  3264. (uri "https://common-lisp.net/project/s-xml/s-xml.tgz")
  3265. (sha256
  3266. (base32
  3267. "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf"))))
  3268. (build-system asdf-build-system/sbcl)
  3269. (home-page "https://common-lisp.net/project/s-xml/")
  3270. (synopsis "Simple XML parser implemented in Common Lisp")
  3271. (description
  3272. "S-XML is a simple XML parser implemented in Common Lisp. This XML
  3273. parser implementation has the following features:
  3274. @itemize
  3275. @item It works (handling many common XML usages).
  3276. @item It is very small (the core is about 700 lines of code, including
  3277. comments and whitespace).
  3278. @item It has a core API that is simple, efficient and pure functional, much
  3279. like that from SSAX (see also http://ssax.sourceforge.net).
  3280. @item It supports different DOM models: an XSML-based one, an LXML-based one
  3281. and a classic xml-element struct based one.
  3282. @item It is reasonably time and space efficient (internally avoiding garbage
  3283. generatation as much as possible).
  3284. @item It does support CDATA.
  3285. @item It should support the same character sets as your Common Lisp
  3286. implementation.
  3287. @item It does support XML name spaces.
  3288. @end itemize
  3289. This XML parser implementation has the following limitations:
  3290. @itemize
  3291. @item It does not support any special tags (like processing instructions).
  3292. @item It is not validating, even skips DTD's all together.
  3293. @end itemize\n")
  3294. (license license:lgpl3+)))
  3295. (define-public cl-s-xml
  3296. (sbcl-package->cl-source-package sbcl-s-xml))
  3297. (define-public ecl-s-xml
  3298. (sbcl-package->ecl-package sbcl-s-xml))
  3299. (define-public sbcl-s-xml-rpc
  3300. (package
  3301. (name "sbcl-s-xml-rpc")
  3302. (version "7")
  3303. (source
  3304. (origin
  3305. (method url-fetch)
  3306. (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz")
  3307. (sha256
  3308. (base32
  3309. "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
  3310. (build-system asdf-build-system/sbcl)
  3311. (inputs
  3312. (list sbcl-s-xml))
  3313. (home-page "https://common-lisp.net/project/s-xml-rpc/")
  3314. (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
  3315. (description
  3316. "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both
  3317. client and server.")
  3318. (license license:lgpl3+)))
  3319. (define-public cl-s-xml-rpc
  3320. (sbcl-package->cl-source-package sbcl-s-xml-rpc))
  3321. (define-public ecl-s-xml-rpc
  3322. (sbcl-package->ecl-package sbcl-s-xml-rpc))
  3323. (define-public sbcl-trivial-arguments
  3324. (let ((commit "ecd84ed9cf9ef8f1e873d7409e6bd04979372aa7")
  3325. (revision "1"))
  3326. (package
  3327. (name "sbcl-trivial-arguments")
  3328. (version (git-version "1.1.0" revision commit))
  3329. (source
  3330. (origin
  3331. (method git-fetch)
  3332. (uri (git-reference
  3333. (url "https://github.com/Shinmera/trivial-arguments")
  3334. (commit commit)))
  3335. (file-name (git-file-name "trivial-arguments" version))
  3336. (sha256
  3337. (base32 "02vaqfavhj8jqxnr68nnzvzshm8jbgcy6m9lvyv4daa6f7ihqf88"))))
  3338. (build-system asdf-build-system/sbcl)
  3339. (home-page "https://github.com/Shinmera/trivial-arguments")
  3340. (synopsis "Common Lisp library to retrieve a function's lambda-list")
  3341. (description
  3342. "This is a simple library to retrieve the argument list of a function.")
  3343. (license license:zlib))))
  3344. (define-public ecl-trivial-arguments
  3345. (sbcl-package->ecl-package sbcl-trivial-arguments))
  3346. (define-public cl-trivial-arguments
  3347. (sbcl-package->cl-source-package sbcl-trivial-arguments))
  3348. (define-public sbcl-trivial-clipboard
  3349. (let ((commit "8a580cb97196be7cf096548eb1f46794cd22bb39"))
  3350. (package
  3351. (name "sbcl-trivial-clipboard")
  3352. (version (git-version "0.0.0.0" "4" commit))
  3353. (source
  3354. (origin
  3355. (method git-fetch)
  3356. (uri (git-reference
  3357. (url "https://github.com/snmsts/trivial-clipboard")
  3358. (commit commit)))
  3359. (file-name (git-file-name "trivial-clipboard" version))
  3360. (sha256
  3361. (base32
  3362. "0apkgqrscylw3hhm5x2vs0z3hz6h7zd7dl5y3wr2zl8qjpvpc80k"))))
  3363. (build-system asdf-build-system/sbcl)
  3364. (inputs
  3365. (list xclip))
  3366. (native-inputs
  3367. (list sbcl-fiveam))
  3368. (arguments
  3369. `(#:phases
  3370. (modify-phases %standard-phases
  3371. (add-after 'unpack 'fix-paths
  3372. (lambda* (#:key inputs #:allow-other-keys)
  3373. (substitute* "src/text.lisp"
  3374. (("\"xclip\"")
  3375. (string-append "\"" (assoc-ref inputs "xclip") "/bin/xclip\""))))))))
  3376. (home-page "https://github.com/snmsts/trivial-clipboard")
  3377. (synopsis "Access system clipboard in Common Lisp")
  3378. (description
  3379. "@command{trivial-clipboard} gives access to the system clipboard.")
  3380. (license license:expat))))
  3381. (define-public cl-trivial-clipboard
  3382. (sbcl-package->cl-source-package sbcl-trivial-clipboard))
  3383. (define-public ecl-trivial-clipboard
  3384. (sbcl-package->ecl-package sbcl-trivial-clipboard))
  3385. (define-public sbcl-trivial-backtrace
  3386. (let ((commit "6eb65bde7229413040c81d42ea22f0e4c9c8cfc9")
  3387. (revision "1"))
  3388. (package
  3389. (name "sbcl-trivial-backtrace")
  3390. (version (git-version "1.1.0" revision commit))
  3391. (source
  3392. (origin
  3393. (method git-fetch)
  3394. (uri (git-reference
  3395. (url "https://github.com/gwkkwg/trivial-backtrace")
  3396. (commit commit)))
  3397. (file-name (git-file-name "trivial-backtrace" version))
  3398. (sha256
  3399. (base32 "1mbaqiwj5034iw6jzw30jyhwzp1pvhnz1zcy0lns0z5j2h9ldapw"))))
  3400. (build-system asdf-build-system/sbcl)
  3401. (native-inputs
  3402. (list sbcl-lift))
  3403. (arguments
  3404. `(#:phases
  3405. (modify-phases %standard-phases
  3406. (add-after 'check 'delete-test-results
  3407. (lambda* (#:key outputs #:allow-other-keys)
  3408. (let ((test-results (string-append (assoc-ref outputs "out")
  3409. "/share/common-lisp/"
  3410. (%lisp-type)
  3411. "/trivial-backtrace"
  3412. "/test-results")))
  3413. (when (file-exists? test-results)
  3414. (delete-file-recursively test-results)))
  3415. #t)))))
  3416. (home-page "https://common-lisp.net/project/trivial-backtrace/")
  3417. (synopsis "Portable simple API to work with backtraces in Common Lisp")
  3418. (description
  3419. "One of the many things that didn't quite get into the Common Lisp
  3420. standard was how to get a Lisp to output its call stack when something has
  3421. gone wrong. As such, each Lisp has developed its own notion of what to
  3422. display, how to display it, and what sort of arguments can be used to
  3423. customize it. @code{trivial-backtrace} is a simple solution to generating a
  3424. backtrace portably.")
  3425. (license license:expat))))
  3426. (define-public cl-trivial-backtrace
  3427. (sbcl-package->cl-source-package sbcl-trivial-backtrace))
  3428. (define-public ecl-trivial-backtrace
  3429. (sbcl-package->ecl-package sbcl-trivial-backtrace))
  3430. (define-public sbcl-rfc2388
  3431. (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
  3432. (revision "1"))
  3433. (package
  3434. (name "sbcl-rfc2388")
  3435. (version (git-version "0.0.0" revision commit))
  3436. (source
  3437. (origin
  3438. (method git-fetch)
  3439. (uri (git-reference
  3440. (url "https://github.com/jdz/rfc2388")
  3441. (commit commit)))
  3442. (file-name (git-file-name "rfc2388" version))
  3443. (sha256
  3444. (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
  3445. (build-system asdf-build-system/sbcl)
  3446. (home-page "https://github.com/jdz/rfc2388/")
  3447. (synopsis "Implementation of RFC 2388 in Common Lisp")
  3448. (description
  3449. "This package contains an implementation of RFC 2388, which is used to
  3450. process form data posted with HTTP POST method using enctype
  3451. \"multipart/form-data\".")
  3452. (license license:bsd-2))))
  3453. (define-public cl-rfc2388
  3454. (sbcl-package->cl-source-package sbcl-rfc2388))
  3455. (define-public ecl-rfc2388
  3456. (sbcl-package->ecl-package sbcl-rfc2388))
  3457. (define-public sbcl-md5
  3458. (package
  3459. (name "sbcl-md5")
  3460. (version "2.0.5")
  3461. (source
  3462. (origin
  3463. (method git-fetch)
  3464. (uri (git-reference
  3465. (url "https://github.com/pmai/md5")
  3466. (commit (string-append "release-" version))))
  3467. (file-name (git-file-name "md5" version))
  3468. (sha256
  3469. (base32 "1g20np6rhn3y08z8mlmlk721mw2207s52v2pwp4smm3lz25sx3q5"))))
  3470. (build-system asdf-build-system/sbcl)
  3471. (home-page "https://github.com/pmai/md5")
  3472. (synopsis
  3473. "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
  3474. (description
  3475. "This package implements The MD5 Message-Digest Algorithm, as defined in
  3476. RFC 1321 by R. Rivest, published April 1992.")
  3477. (license license:public-domain)))
  3478. (define-public cl-md5
  3479. (sbcl-package->cl-source-package sbcl-md5))
  3480. (define-public ecl-md5
  3481. (package
  3482. (inherit (sbcl-package->ecl-package sbcl-md5))
  3483. (inputs
  3484. (list ecl-flexi-streams))))
  3485. (define-public sbcl-cl+ssl
  3486. (let ((commit "046d698cf65539faf9aba0a5ccd086a9d6f53eef")
  3487. (revision "3"))
  3488. (package
  3489. (name "sbcl-cl+ssl")
  3490. (version (git-version "0.0.0" revision commit))
  3491. (source
  3492. (origin
  3493. (method git-fetch)
  3494. (uri (git-reference
  3495. (url "https://github.com/cl-plus-ssl/cl-plus-ssl")
  3496. (commit commit)))
  3497. (file-name (git-file-name "cl+ssl" version))
  3498. (sha256
  3499. (base32 "110yhb0f1c8yilqsgza2xhv3675i41iizylibgy5qc5fa2lnaxbv"))))
  3500. (build-system asdf-build-system/sbcl)
  3501. (arguments
  3502. '(#:phases
  3503. (modify-phases %standard-phases
  3504. (add-after 'unpack 'fix-paths
  3505. (lambda* (#:key inputs #:allow-other-keys)
  3506. (substitute* "src/reload.lisp"
  3507. (("libssl.so" all)
  3508. (string-append
  3509. (assoc-ref inputs "openssl") "/lib/" all))
  3510. (("libcrypto.so" all)
  3511. (string-append
  3512. (assoc-ref inputs "openssl") "/lib/" all)))))
  3513. (add-after 'fix-paths 'fix-tests
  3514. (lambda _
  3515. ;; Disable coverall support in tests because of a circular
  3516. ;; dependency: cl+ssl -> cl-coverall -> dexador
  3517. ;; -> clack -> hunchentoot -> cl+ssl
  3518. (substitute* "cl+ssl.test.asd"
  3519. (("\\(:feature \\(:or :sbcl :ccl\\) :cl-coveralls\\)")
  3520. "")))))))
  3521. (native-inputs
  3522. (list ;sbcl-cl-coveralls
  3523. sbcl-fiveam))
  3524. (inputs
  3525. (list openssl
  3526. sbcl-cffi
  3527. sbcl-trivial-gray-streams
  3528. sbcl-flexi-streams
  3529. sbcl-bordeaux-threads
  3530. sbcl-trivial-garbage
  3531. sbcl-alexandria
  3532. sbcl-trivial-features
  3533. sbcl-usocket))
  3534. (home-page "https://common-lisp.net/project/cl-plus-ssl/")
  3535. (synopsis "Common Lisp bindings to OpenSSL")
  3536. (description
  3537. "This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
  3538. code was written by Eric Marsden and includes contributions by Jochen Schmidt.
  3539. Development into CL+SSL was done by David Lichteblau.")
  3540. (license license:expat))))
  3541. (define-public cl-cl+ssl
  3542. (sbcl-package->cl-source-package sbcl-cl+ssl))
  3543. (define-public ecl-cl+ssl
  3544. (sbcl-package->ecl-package sbcl-cl+ssl))
  3545. (define-public sbcl-kmrcl
  3546. (let ((version "1.111")
  3547. (commit "4a27407aad9deb607ffb8847630cde3d041ea25a")
  3548. (revision "1"))
  3549. (package
  3550. (name "sbcl-kmrcl")
  3551. (version (git-version version revision commit))
  3552. (source
  3553. (origin
  3554. (method git-fetch)
  3555. (uri (git-reference
  3556. (url "http://git.kpe.io/kmrcl.git/")
  3557. (commit commit)))
  3558. (file-name (git-file-name name version))
  3559. (sha256
  3560. (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))))
  3561. (build-system asdf-build-system/sbcl)
  3562. (inputs
  3563. (list sbcl-rt))
  3564. (home-page "http://files.kpe.io/kmrcl/")
  3565. (synopsis "General utilities for Common Lisp programs")
  3566. (description
  3567. "KMRCL is a collection of utilities used by a number of Kevin
  3568. Rosenberg's Common Lisp packages.")
  3569. (license license:llgpl))))
  3570. (define-public cl-kmrcl
  3571. (sbcl-package->cl-source-package sbcl-kmrcl))
  3572. (define-public ecl-kmrcl
  3573. (sbcl-package->ecl-package sbcl-kmrcl))
  3574. (define-public sbcl-cl-base64
  3575. (let ((commit "577683b18fd880b82274d99fc96a18a710e3987a"))
  3576. (package
  3577. (name "sbcl-cl-base64")
  3578. (version (git-version "3.3.4" "1" commit))
  3579. (source
  3580. (origin
  3581. (method git-fetch)
  3582. (uri (git-reference
  3583. (url "http://git.kpe.io/cl-base64.git/")
  3584. (commit commit)))
  3585. (file-name (git-file-name name version))
  3586. (sha256
  3587. (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))))
  3588. (build-system asdf-build-system/sbcl)
  3589. (native-inputs ; For tests.
  3590. (list sbcl-ptester sbcl-kmrcl))
  3591. (home-page "http://files.kpe.io/cl-base64/")
  3592. (synopsis
  3593. "Common Lisp package to encode and decode base64 with URI support")
  3594. (description
  3595. "This package provides highly optimized base64 encoding and decoding.
  3596. Besides conversion to and from strings, integer conversions are supported.
  3597. Encoding with Uniform Resource Identifiers is supported by using a modified
  3598. encoding table that uses only URI-compatible characters.")
  3599. (license license:bsd-3))))
  3600. (define-public cl-base64
  3601. (sbcl-package->cl-source-package sbcl-cl-base64))
  3602. (define-public ecl-cl-base64
  3603. (sbcl-package->ecl-package sbcl-cl-base64))
  3604. (define-public sbcl-chunga
  3605. (package
  3606. (name "sbcl-chunga")
  3607. (version "1.1.7")
  3608. (source
  3609. (origin
  3610. (method git-fetch)
  3611. (uri (git-reference
  3612. (url "https://github.com/edicl/chunga")
  3613. (commit (string-append "v" version))))
  3614. (file-name (git-file-name name version))
  3615. (sha256
  3616. (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
  3617. (build-system asdf-build-system/sbcl)
  3618. (inputs
  3619. (list sbcl-trivial-gray-streams))
  3620. (home-page "https://edicl.github.io/chunga/")
  3621. (synopsis "Portable chunked streams for Common Lisp")
  3622. (description
  3623. "Chunga implements streams capable of chunked encoding on demand as
  3624. defined in RFC 2616.")
  3625. (license license:bsd-2)))
  3626. (define-public cl-chunga
  3627. (sbcl-package->cl-source-package sbcl-chunga))
  3628. (define-public ecl-chunga
  3629. (sbcl-package->ecl-package sbcl-chunga))
  3630. (define-public sbcl-cl-who
  3631. (let ((version "1.1.4")
  3632. (commit "0d3826475133271ee8c590937136c1bc41b8cbe0")
  3633. (revision "2"))
  3634. (package
  3635. (name "sbcl-cl-who")
  3636. (version (git-version version revision commit))
  3637. (source
  3638. (origin
  3639. (method git-fetch)
  3640. (uri (git-reference
  3641. (url "https://github.com/edicl/cl-who")
  3642. (commit commit)))
  3643. (file-name (git-file-name "cl-who" version))
  3644. (sha256
  3645. (base32
  3646. "0sc8nji9q1df04lhsiwsjy1a35996bibl31w5hp5sh8q6sa122dy"))))
  3647. (build-system asdf-build-system/sbcl)
  3648. (native-inputs
  3649. (list sbcl-flexi-streams))
  3650. (home-page "https://edicl.github.io/cl-who/")
  3651. (synopsis "Yet another Lisp markup language")
  3652. (description
  3653. "There are plenty of Lisp Markup Languages out there - every Lisp
  3654. programmer seems to write at least one during his career - and CL-WHO (where
  3655. WHO means \"with-html-output\" for want of a better acronym) is probably just
  3656. as good or bad as the next one.")
  3657. (license license:bsd-2))))
  3658. (define-public cl-who
  3659. (sbcl-package->cl-source-package sbcl-cl-who))
  3660. (define-public ecl-cl-who
  3661. (sbcl-package->ecl-package sbcl-cl-who))
  3662. (define-public sbcl-chipz
  3663. (let ((version "0.8")
  3664. (commit "82a17d39c78d91f6ea63a03aca8f9aa6069a5e11")
  3665. (revision "2"))
  3666. (package
  3667. (name "sbcl-chipz")
  3668. (version (git-version version revision commit))
  3669. (source
  3670. (origin
  3671. (method git-fetch)
  3672. (uri (git-reference
  3673. (url "https://github.com/sharplispers/chipz")
  3674. (commit commit)))
  3675. (file-name (git-file-name "cl-chipz" version))
  3676. (sha256
  3677. (base32 "1n4f22i9j8iapjd6yx1z348rggcybvg9h794kx9libjgz4bs371h"))))
  3678. (build-system asdf-build-system/sbcl)
  3679. (native-inputs
  3680. (list sbcl-flexi-streams))
  3681. (home-page "http://method-combination.net/lisp/chipz/")
  3682. (synopsis
  3683. "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
  3684. data")
  3685. (description
  3686. "DEFLATE data, defined in RFC1951, forms the core of popular
  3687. compression formats such as zlib (RFC 1950) and gzip (RFC 1952). As such,
  3688. Chipz also provides for decompressing data in those formats as well. BZIP2 is
  3689. the format used by the popular compression tool bzip2.")
  3690. ;; The author describes it as "MIT-like"
  3691. (license license:expat))))
  3692. (define-public cl-chipz
  3693. (sbcl-package->cl-source-package sbcl-chipz))
  3694. (define-public ecl-chipz
  3695. (sbcl-package->ecl-package sbcl-chipz))
  3696. (define-public sbcl-drakma
  3697. (package
  3698. (name "sbcl-drakma")
  3699. (version "2.0.8")
  3700. (source
  3701. (origin
  3702. (method git-fetch)
  3703. (uri (git-reference
  3704. (url "https://github.com/edicl/drakma")
  3705. (commit (string-append "v" version))))
  3706. (file-name (git-file-name "cl-drakma" version))
  3707. (sha256
  3708. (base32
  3709. "1wf2zivfvhsh6zvd6wcwfd67bm8s8a1p2fismszc8xb819dqk9yl"))))
  3710. (build-system asdf-build-system/sbcl)
  3711. (inputs
  3712. (list sbcl-puri
  3713. sbcl-cl-base64
  3714. sbcl-chunga
  3715. sbcl-flexi-streams
  3716. sbcl-cl-ppcre
  3717. sbcl-chipz
  3718. sbcl-usocket
  3719. sbcl-cl+ssl))
  3720. (native-inputs
  3721. (list sbcl-fiveam))
  3722. (home-page "https://edicl.github.io/drakma/")
  3723. (synopsis "HTTP client written in Common Lisp")
  3724. (description
  3725. "Drakma is a full-featured HTTP client implemented in Common Lisp. It
  3726. knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
  3727. sockets, SSL, continuable uploads, file uploads, cookies, and more.")
  3728. (license license:bsd-2)))
  3729. (define-public cl-drakma
  3730. (sbcl-package->cl-source-package sbcl-drakma))
  3731. (define-public ecl-drakma
  3732. (sbcl-package->ecl-package sbcl-drakma))
  3733. (define-public sbcl-hunchentoot
  3734. (package
  3735. (name "sbcl-hunchentoot")
  3736. (version "1.3.0")
  3737. (source
  3738. (origin
  3739. (method git-fetch)
  3740. (uri (git-reference
  3741. (url "https://github.com/edicl/hunchentoot")
  3742. (commit (string-append "v" version))))
  3743. (file-name (git-file-name "hunchentoot" version))
  3744. (sha256
  3745. (base32 "1z0m45lp6rv59g69l44gj3q3d2bmjlhqzpii0vgkniam21dcimy9"))))
  3746. (build-system asdf-build-system/sbcl)
  3747. (native-inputs
  3748. (list sbcl-cl-who sbcl-drakma))
  3749. (inputs
  3750. (list sbcl-chunga
  3751. sbcl-cl-base64
  3752. sbcl-cl-fad
  3753. sbcl-cl-ppcre
  3754. sbcl-flexi-streams
  3755. sbcl-cl+ssl
  3756. sbcl-md5
  3757. sbcl-rfc2388
  3758. sbcl-trivial-backtrace
  3759. sbcl-usocket))
  3760. (arguments
  3761. `(;; FIXME: Tests fail because they fail to open the file
  3762. ;; "/proc/sys/kernel/osrelease"
  3763. #:tests? #f))
  3764. (home-page "https://edicl.github.io/hunchentoot/")
  3765. (synopsis "Web server written in Common Lisp")
  3766. (description
  3767. "Hunchentoot is a web server written in Common Lisp and at the same
  3768. time a toolkit for building dynamic websites. As a stand-alone web server,
  3769. Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
  3770. connections (keep-alive), and SSL.")
  3771. (license license:bsd-2)))
  3772. (define-public cl-hunchentoot
  3773. (sbcl-package->cl-source-package sbcl-hunchentoot))
  3774. (define-public ecl-hunchentoot
  3775. (package
  3776. (inherit (sbcl-package->ecl-package sbcl-hunchentoot))
  3777. (arguments
  3778. ;; Tests fail on ECL with 'Socket error in "socket": EINVAL'.
  3779. '(#:tests? #f))))
  3780. (define-public sbcl-trivial-types
  3781. (package
  3782. (name "sbcl-trivial-types")
  3783. (version "0.0.1")
  3784. (source
  3785. (origin
  3786. (method git-fetch)
  3787. (uri (git-reference
  3788. (url "https://github.com/m2ym/trivial-types")
  3789. (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
  3790. (file-name (git-file-name name version))
  3791. (sha256
  3792. (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
  3793. (build-system asdf-build-system/sbcl)
  3794. (home-page "https://github.com/m2ym/trivial-types")
  3795. (synopsis "Trivial type definitions for Common Lisp")
  3796. (description
  3797. "TRIVIAL-TYPES provides missing but important type definitions such as
  3798. PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
  3799. (license license:llgpl)))
  3800. (define-public cl-trivial-types
  3801. (sbcl-package->cl-source-package sbcl-trivial-types))
  3802. (define-public ecl-trivial-types
  3803. (sbcl-package->ecl-package sbcl-trivial-types))
  3804. (define-public sbcl-cl-annot
  3805. (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
  3806. (revision "1"))
  3807. (package
  3808. (name "sbcl-cl-annot")
  3809. (version (git-version "0.0.0" revision commit))
  3810. (source
  3811. (origin
  3812. (method git-fetch)
  3813. (uri (git-reference
  3814. (url "https://github.com/m2ym/cl-annot")
  3815. (commit commit)))
  3816. (file-name (git-file-name name version))
  3817. (sha256
  3818. (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
  3819. (build-system asdf-build-system/sbcl)
  3820. (inputs
  3821. (list sbcl-alexandria))
  3822. (home-page "https://github.com/m2ym/cl-annot")
  3823. (synopsis "Python-like Annotation Syntax for Common Lisp")
  3824. (description
  3825. "@code{cl-annot} is an general annotation library for Common Lisp.")
  3826. (license license:llgpl))))
  3827. (define-public cl-annot
  3828. (sbcl-package->cl-source-package sbcl-cl-annot))
  3829. (define-public ecl-cl-annot
  3830. (sbcl-package->ecl-package sbcl-cl-annot))
  3831. (define-public sbcl-cl-syntax
  3832. (package
  3833. (name "sbcl-cl-syntax")
  3834. (version "0.0.3")
  3835. (source
  3836. (origin
  3837. (method git-fetch)
  3838. (uri (git-reference
  3839. (url "https://github.com/m2ym/cl-syntax")
  3840. (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
  3841. (file-name (git-file-name "cl-syntax" version))
  3842. (sha256
  3843. (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
  3844. (build-system asdf-build-system/sbcl)
  3845. (inputs
  3846. `(("cl-annot" ,sbcl-cl-annot)
  3847. ("cl-interpol" ,sbcl-cl-interpol)
  3848. ("named-readtables" ,sbcl-named-readtables)
  3849. ("trivial-types" ,sbcl-trivial-types)))
  3850. (arguments
  3851. '(#:asd-systems '("cl-syntax"
  3852. "cl-syntax-annot"
  3853. "cl-syntax-interpol")))
  3854. (home-page "https://github.com/m2ym/cl-syntax")
  3855. (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
  3856. (description
  3857. "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
  3858. (license license:llgpl)))
  3859. (define-public cl-syntax
  3860. (sbcl-package->cl-source-package sbcl-cl-syntax))
  3861. (define-public ecl-cl-syntax
  3862. (sbcl-package->ecl-package sbcl-cl-syntax))
  3863. (define-public sbcl-cl-utilities
  3864. (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
  3865. (revision "1"))
  3866. (package
  3867. (name "sbcl-cl-utilities")
  3868. (version (git-version "0.0.0" revision commit))
  3869. (source
  3870. (origin
  3871. (method url-fetch)
  3872. (uri
  3873. (string-append
  3874. "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
  3875. "archive/" commit "/cl-utilities-" commit ".tar.gz"))
  3876. (sha256
  3877. (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
  3878. (build-system asdf-build-system/sbcl)
  3879. (arguments
  3880. '(#:phases
  3881. (modify-phases %standard-phases
  3882. (add-after 'unpack 'fix-paths
  3883. (lambda* (#:key inputs #:allow-other-keys)
  3884. (substitute* "rotate-byte.lisp"
  3885. (("in-package :cl-utilities)" all)
  3886. "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
  3887. (home-page "http://common-lisp.net/project/cl-utilities")
  3888. (synopsis "Collection of semi-standard utilities")
  3889. (description
  3890. "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
  3891. is a collection of Common Lisp Utilities, things that everybody writes since
  3892. they're not part of the official standard. There are some very useful things
  3893. there; the only problems are that they aren't implemented as well as you'd
  3894. like (some aren't implemented at all) and they aren't conveniently packaged
  3895. and maintained. It takes quite a bit of work to carefully implement utilities
  3896. for common use, commented and documented, with error checking placed
  3897. everywhere some dumb user might make a mistake.")
  3898. (license license:public-domain))))
  3899. (define-public cl-utilities
  3900. (sbcl-package->cl-source-package sbcl-cl-utilities))
  3901. (define-public ecl-cl-utilities
  3902. (sbcl-package->ecl-package sbcl-cl-utilities))
  3903. (define-public sbcl-map-set
  3904. (let ((commit "7b4b545b68b8")
  3905. (revision "1"))
  3906. (package
  3907. (name "sbcl-map-set")
  3908. (version (git-version "0.0.0" revision commit))
  3909. (source
  3910. (origin
  3911. (method url-fetch)
  3912. (uri (string-append
  3913. "https://bitbucket.org/tarballs_are_good/map-set/get/"
  3914. commit ".tar.gz"))
  3915. (sha256
  3916. (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
  3917. (build-system asdf-build-system/sbcl)
  3918. (home-page "https://bitbucket.org/tarballs_are_good/map-set")
  3919. (synopsis "Set-like data structure")
  3920. (description
  3921. "Implementation of a set-like data structure with constant time
  3922. addition, removal, and random selection.")
  3923. (license license:bsd-3))))
  3924. (define-public cl-map-set
  3925. (sbcl-package->cl-source-package sbcl-map-set))
  3926. (define-public ecl-map-set
  3927. (sbcl-package->ecl-package sbcl-map-set))
  3928. (define-public sbcl-quri
  3929. (package
  3930. (name "sbcl-quri")
  3931. (version "0.4.0")
  3932. (source
  3933. (origin
  3934. (method git-fetch)
  3935. (uri (git-reference
  3936. (url "https://github.com/fukamachi/quri")
  3937. (commit version)))
  3938. (file-name (git-file-name name version))
  3939. (sha256
  3940. (base32 "0ka5haq3g72hvaz4hdv7y1d6df9ncmx029wwixn4r413gll5yxy7"))))
  3941. (build-system asdf-build-system/sbcl)
  3942. (arguments
  3943. ;; Test system must be loaded before, otherwise tests fail with:
  3944. ;; Component QURI-ASD::QURI-TEST not found, required by #<SYSTEM
  3945. ;; "quri">.
  3946. '(#:asd-systems '("quri-test"
  3947. "quri")))
  3948. (native-inputs (list sbcl-prove))
  3949. (inputs (list sbcl-babel sbcl-split-sequence sbcl-cl-utilities
  3950. sbcl-alexandria))
  3951. (home-page "https://github.com/fukamachi/quri")
  3952. (synopsis "Yet another URI library for Common Lisp")
  3953. (description
  3954. "QURI (pronounced \"Q-ree\") is yet another URI library for Common
  3955. Lisp. It is intended to be a replacement of PURI.")
  3956. (license license:bsd-3)))
  3957. (define-public cl-quri
  3958. (sbcl-package->cl-source-package sbcl-quri))
  3959. (define-public ecl-quri
  3960. (sbcl-package->ecl-package sbcl-quri))
  3961. (define-public sbcl-myway
  3962. (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
  3963. (revision "1"))
  3964. (package
  3965. (name "sbcl-myway")
  3966. (version (git-version "0.1.0" revision commit))
  3967. (source
  3968. (origin
  3969. (method git-fetch)
  3970. (uri (git-reference
  3971. (url "https://github.com/fukamachi/myway")
  3972. (commit commit)))
  3973. (file-name (git-file-name "myway" version))
  3974. (sha256
  3975. (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
  3976. (build-system asdf-build-system/sbcl)
  3977. (arguments
  3978. '(#:asd-systems '("myway-test" "myway")))
  3979. (native-inputs
  3980. (list sbcl-prove))
  3981. (inputs
  3982. (list sbcl-cl-ppcre sbcl-quri sbcl-map-set))
  3983. (home-page "https://github.com/fukamachi/myway")
  3984. (synopsis "Sinatra-compatible URL routing library for Common Lisp")
  3985. (description "My Way is a Sinatra-compatible URL routing library.")
  3986. (license license:llgpl))))
  3987. (define-public cl-myway
  3988. (sbcl-package->cl-source-package sbcl-myway))
  3989. (define-public ecl-myway
  3990. (sbcl-package->ecl-package sbcl-myway))
  3991. (define-public sbcl-xsubseq
  3992. (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
  3993. (revision "1"))
  3994. (package
  3995. (name "sbcl-xsubseq")
  3996. (version (git-version "0.0.1" revision commit))
  3997. (source
  3998. (origin
  3999. (method git-fetch)
  4000. (uri (git-reference
  4001. (url "https://github.com/fukamachi/xsubseq")
  4002. (commit commit)))
  4003. (file-name (git-file-name name version))
  4004. (sha256
  4005. (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
  4006. (build-system asdf-build-system/sbcl)
  4007. (arguments
  4008. '(#:asd-systems '("xsubseq-test" "xsubseq")))
  4009. (native-inputs
  4010. (list sbcl-prove))
  4011. (home-page "https://github.com/fukamachi/xsubseq")
  4012. (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
  4013. (description
  4014. "XSubseq provides functions to be able to handle \"subseq\"s more
  4015. effieiently.")
  4016. (license license:bsd-2))))
  4017. (define-public cl-xsubseq
  4018. (sbcl-package->cl-source-package sbcl-xsubseq))
  4019. (define-public ecl-xsubseq
  4020. (sbcl-package->ecl-package sbcl-xsubseq))
  4021. (define-public sbcl-smart-buffer
  4022. (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
  4023. (revision "1"))
  4024. (package
  4025. (name "sbcl-smart-buffer")
  4026. (version (git-version "0.0.1" revision commit))
  4027. (source
  4028. (origin
  4029. (method git-fetch)
  4030. (uri (git-reference
  4031. (url "https://github.com/fukamachi/smart-buffer")
  4032. (commit commit)))
  4033. (file-name (git-file-name name version))
  4034. (sha256
  4035. (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
  4036. (build-system asdf-build-system/sbcl)
  4037. (arguments
  4038. '(#:asd-systems '("smart-buffer-test" "smart-buffer")))
  4039. (native-inputs
  4040. (list sbcl-prove
  4041. sbcl-babel))
  4042. (inputs
  4043. (list sbcl-xsubseq sbcl-flexi-streams))
  4044. (home-page "https://github.com/fukamachi/smart-buffer")
  4045. (synopsis "Smart octets buffer")
  4046. (description
  4047. "Smart-buffer provides an output buffer which changes the destination
  4048. depending on content size.")
  4049. (license license:bsd-3))))
  4050. (define-public cl-smart-buffer
  4051. (sbcl-package->cl-source-package sbcl-smart-buffer))
  4052. (define-public ecl-smart-buffer
  4053. (sbcl-package->ecl-package sbcl-smart-buffer))
  4054. (define-public sbcl-fast-http
  4055. (let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
  4056. (revision "2"))
  4057. (package
  4058. (name "sbcl-fast-http")
  4059. (version (git-version "0.2.0" revision commit))
  4060. (source
  4061. (origin
  4062. (method git-fetch)
  4063. (uri (git-reference
  4064. (url "https://github.com/fukamachi/fast-http")
  4065. (commit commit)))
  4066. (file-name (git-file-name name version))
  4067. (sha256
  4068. (base32 "0al2g7g219jjljsf7b23pbilpgacxy5as5gs2nqf76b5qni396mi"))))
  4069. (build-system asdf-build-system/sbcl)
  4070. (arguments
  4071. '(#:asd-systems '("fast-http-test" "fast-http")))
  4072. (native-inputs
  4073. `(("sbcl-prove" ,sbcl-prove)
  4074. ("cl-syntax" ,sbcl-cl-syntax)))
  4075. (inputs
  4076. (list sbcl-alexandria sbcl-proc-parse sbcl-xsubseq
  4077. sbcl-smart-buffer sbcl-cl-utilities))
  4078. (home-page "https://github.com/fukamachi/fast-http")
  4079. (synopsis "HTTP request/response parser for Common Lisp")
  4080. (description
  4081. "@code{fast-http} is a HTTP request/response protocol parser for Common
  4082. Lisp.")
  4083. ;; Author specified the MIT license
  4084. (license license:expat))))
  4085. (define-public cl-fast-http
  4086. (sbcl-package->cl-source-package sbcl-fast-http))
  4087. (define-public ecl-fast-http
  4088. (sbcl-package->ecl-package sbcl-fast-http))
  4089. (define-public sbcl-static-vectors
  4090. (package
  4091. (name "sbcl-static-vectors")
  4092. (version "1.8.9")
  4093. (source
  4094. (origin
  4095. (method git-fetch)
  4096. (uri (git-reference
  4097. (url "https://github.com/sionescu/static-vectors")
  4098. (commit (string-append "v" version))))
  4099. (file-name (git-file-name name version))
  4100. (sha256
  4101. (base32 "079qa20lhanzsz1qf4iags91n0ziylbjgbcymm5a5qj7yryas4fw"))))
  4102. (native-inputs
  4103. (list sbcl-fiveam))
  4104. (inputs
  4105. (list sbcl-alexandria sbcl-cffi))
  4106. (build-system asdf-build-system/sbcl)
  4107. (home-page "https://github.com/sionescu/static-vectors")
  4108. (synopsis "Allocate SIMPLE-ARRAYs in static memory")
  4109. (description
  4110. "With @code{static-vectors}, you can create vectors allocated in static
  4111. memory.")
  4112. (license license:expat)))
  4113. (define-public cl-static-vectors
  4114. (sbcl-package->cl-source-package sbcl-static-vectors))
  4115. (define-public ecl-static-vectors
  4116. (sbcl-package->ecl-package sbcl-static-vectors))
  4117. (define-public sbcl-marshal
  4118. (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
  4119. (revision "1"))
  4120. (package
  4121. (name "sbcl-marshal")
  4122. (version (git-version "1.3.0" revision commit))
  4123. (source
  4124. (origin
  4125. (method git-fetch)
  4126. (uri (git-reference
  4127. (url "https://github.com/wlbr/cl-marshal")
  4128. (commit commit)))
  4129. (file-name (git-file-name name version))
  4130. (sha256
  4131. (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
  4132. (build-system asdf-build-system/sbcl)
  4133. (home-page "https://github.com/wlbr/cl-marshal")
  4134. (synopsis "Simple (de)serialization of Lisp datastructures")
  4135. (description
  4136. "Simple and fast marshalling of Lisp datastructures. Convert any object
  4137. into a string representation, put it on a stream an revive it from there.
  4138. Only minimal changes required to make your CLOS objects serializable.")
  4139. (license license:expat))))
  4140. (define-public cl-marshal
  4141. (sbcl-package->cl-source-package sbcl-marshal))
  4142. (define-public ecl-marshal
  4143. (sbcl-package->ecl-package sbcl-marshal))
  4144. (define-public sbcl-fast-io
  4145. (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
  4146. (revision "2"))
  4147. (package
  4148. (name "sbcl-fast-io")
  4149. (version (git-version "1.0.0" revision commit))
  4150. (source
  4151. (origin
  4152. (method git-fetch)
  4153. (uri (git-reference
  4154. (url "https://github.com/rpav/fast-io")
  4155. (commit commit)))
  4156. (file-name (git-file-name name version))
  4157. (sha256
  4158. (base32 "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n"))))
  4159. (build-system asdf-build-system/sbcl)
  4160. (arguments
  4161. ;; Error while trying to load definition for system fast-io-test from
  4162. ;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
  4163. ;; is undefined.
  4164. '(#:tests? #f
  4165. #:asd-files '("fast-io.asd")))
  4166. (native-inputs
  4167. (list sbcl-fiveam sbcl-checkl))
  4168. (inputs
  4169. (list sbcl-alexandria sbcl-trivial-gray-streams sbcl-static-vectors))
  4170. (home-page "https://github.com/rpav/fast-io")
  4171. (synopsis "Fast octet-vector/stream I/O for Common Lisp")
  4172. (description
  4173. "Fast-io is about improving performance to octet-vectors and octet
  4174. streams (though primarily the former, while wrapping the latter).")
  4175. ;; Author specifies this as NewBSD which is an alias
  4176. (license license:bsd-3))))
  4177. (define-public cl-fast-io
  4178. (sbcl-package->cl-source-package sbcl-fast-io))
  4179. (define-public ecl-fast-io
  4180. (sbcl-package->ecl-package sbcl-fast-io))
  4181. (define-public sbcl-jonathan
  4182. (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
  4183. (revision "1"))
  4184. (package
  4185. (name "sbcl-jonathan")
  4186. (version (git-version "0.1.0" revision commit))
  4187. (source
  4188. (origin
  4189. (method git-fetch)
  4190. (uri (git-reference
  4191. (url "https://github.com/Rudolph-Miller/jonathan")
  4192. (commit commit)))
  4193. (file-name (git-file-name name version))
  4194. (sha256
  4195. (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
  4196. (build-system asdf-build-system/sbcl)
  4197. (arguments
  4198. ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
  4199. ;; required by #<SYSTEM "jonathan">. Why?
  4200. `(#:tests? #f))
  4201. (native-inputs
  4202. (list sbcl-prove))
  4203. (inputs
  4204. (list sbcl-cl-syntax sbcl-fast-io sbcl-proc-parse sbcl-cl-ppcre))
  4205. (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
  4206. (synopsis "JSON encoder and decoder")
  4207. (description
  4208. "High performance JSON encoder and decoder. Currently support: SBCL,
  4209. CCL.")
  4210. ;; Author specifies the MIT license
  4211. (license license:expat))))
  4212. (define-public cl-jonathan
  4213. (sbcl-package->cl-source-package sbcl-jonathan))
  4214. (define-public ecl-jonathan
  4215. (sbcl-package->ecl-package sbcl-jonathan))
  4216. (define-public sbcl-http-body
  4217. (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
  4218. (revision "1"))
  4219. (package
  4220. (name "sbcl-http-body")
  4221. (version (git-version "0.1.0" revision commit))
  4222. (source
  4223. (origin
  4224. (method git-fetch)
  4225. (uri (git-reference
  4226. (url "https://github.com/fukamachi/http-body")
  4227. (commit commit)))
  4228. (file-name (git-file-name name version))
  4229. (sha256
  4230. (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
  4231. (build-system asdf-build-system/sbcl)
  4232. (arguments
  4233. '(#:asd-systems '("http-body-test" "http-body")))
  4234. (native-inputs
  4235. (list sbcl-prove sbcl-trivial-utf-8))
  4236. (inputs
  4237. (list sbcl-fast-http sbcl-jonathan sbcl-quri))
  4238. (home-page "https://github.com/fukamachi/http-body")
  4239. (synopsis "HTTP POST data parser")
  4240. (description
  4241. "HTTP-Body parses HTTP POST data and returns POST parameters. It
  4242. supports application/x-www-form-urlencoded, application/json, and
  4243. multipart/form-data.")
  4244. (license license:bsd-2))))
  4245. (define-public cl-http-body
  4246. (sbcl-package->cl-source-package sbcl-http-body))
  4247. (define-public ecl-http-body
  4248. (sbcl-package->ecl-package sbcl-http-body))
  4249. (define-public sbcl-circular-streams
  4250. (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
  4251. (revision "1"))
  4252. (package
  4253. (name "sbcl-circular-streams")
  4254. (version (git-version "0.1.0" revision commit))
  4255. (source
  4256. (origin
  4257. (method git-fetch)
  4258. (uri (git-reference
  4259. (url "https://github.com/fukamachi/circular-streams")
  4260. (commit commit)))
  4261. (file-name (git-file-name name version))
  4262. (sha256
  4263. (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
  4264. (build-system asdf-build-system/sbcl)
  4265. (arguments
  4266. ;; The tests depend on cl-test-more which is now prove. Prove
  4267. ;; tests aren't working for some reason.
  4268. `(#:tests? #f))
  4269. (inputs
  4270. (list sbcl-fast-io sbcl-trivial-gray-streams))
  4271. (home-page "https://github.com/fukamachi/circular-streams")
  4272. (synopsis "Circularly readable streams for Common Lisp")
  4273. (description
  4274. "Circular-Streams allows you to read streams circularly by wrapping real
  4275. streams. Once you reach end-of-file of a stream, it's file position will be
  4276. reset to 0 and you're able to read it again.")
  4277. (license license:llgpl))))
  4278. (define-public cl-circular-streams
  4279. (sbcl-package->cl-source-package sbcl-circular-streams))
  4280. (define-public ecl-circular-streams
  4281. (sbcl-package->ecl-package sbcl-circular-streams))
  4282. (define-public sbcl-lack
  4283. (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
  4284. (revision "1"))
  4285. (package
  4286. (name "sbcl-lack")
  4287. (version (git-version "0.1.0" revision commit))
  4288. (source
  4289. (origin
  4290. (method git-fetch)
  4291. (uri (git-reference
  4292. (url "https://github.com/fukamachi/lack")
  4293. (commit commit)))
  4294. (file-name (git-file-name "lack" version))
  4295. (sha256
  4296. (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
  4297. (build-system asdf-build-system/sbcl)
  4298. (native-inputs
  4299. (list sbcl-prove))
  4300. (inputs
  4301. `(("circular-streams" ,sbcl-circular-streams)
  4302. ("http-body" ,sbcl-http-body)
  4303. ("ironclad" ,sbcl-ironclad)
  4304. ("local-time" ,sbcl-local-time)
  4305. ("quri" ,sbcl-quri)
  4306. ("trivial-mimes" ,sbcl-trivial-mimes)))
  4307. (arguments
  4308. '(#:asd-systems '("lack"
  4309. "lack-request"
  4310. "lack-response"
  4311. "lack-component"
  4312. "lack-util"
  4313. "lack-middleware-backtrace"
  4314. "lack-middleware-static")
  4315. #:test-asd-file "t-lack.asd"
  4316. ;; XXX: Component :CLACK not found
  4317. #:tests? #f))
  4318. (home-page "https://github.com/fukamachi/lack")
  4319. (synopsis "Lack, the core of Clack")
  4320. (description
  4321. "Lack is a Common Lisp library which allows web applications to be
  4322. constructed of modular components. It was originally a part of Clack, however
  4323. it's going to be rewritten as an individual project since Clack v2 with
  4324. performance and simplicity in mind.")
  4325. (license license:llgpl))))
  4326. (define-public cl-lack
  4327. (sbcl-package->cl-source-package sbcl-lack))
  4328. (define-public ecl-lack
  4329. (sbcl-package->ecl-package sbcl-lack))
  4330. (define-public sbcl-local-time
  4331. (let ((commit "a177eb911c0e8116e2bfceb79049265a884b701b")
  4332. (revision "2"))
  4333. (package
  4334. (name "sbcl-local-time")
  4335. (version (git-version "1.0.6" revision commit))
  4336. (source
  4337. (origin
  4338. (method git-fetch)
  4339. (uri (git-reference
  4340. (url "https://github.com/dlowe-net/local-time")
  4341. (commit commit)))
  4342. (file-name (git-file-name name version))
  4343. (sha256
  4344. (base32 "0wld28xx20k0ysgg6akic5lg4vkjd0iyhv86m388xfrv8xh87wii"))))
  4345. (build-system asdf-build-system/sbcl)
  4346. (native-inputs
  4347. (list sbcl-hu.dwim.stefil))
  4348. (home-page "https://common-lisp.net/project/local-time/")
  4349. (synopsis "Time manipulation library for Common Lisp")
  4350. (description
  4351. "The LOCAL-TIME library is a Common Lisp library for the manipulation of
  4352. dates and times. It is based almost entirely upon Erik Naggum's paper \"The
  4353. Long Painful History of Time\".")
  4354. (license license:expat))))
  4355. (define-public cl-local-time
  4356. (sbcl-package->cl-source-package sbcl-local-time))
  4357. (define-public ecl-local-time
  4358. (sbcl-package->ecl-package sbcl-local-time))
  4359. (define-public sbcl-chronicity
  4360. (package
  4361. (name "sbcl-chronicity")
  4362. (version "0.4.1")
  4363. (source
  4364. (origin
  4365. (method git-fetch)
  4366. (uri (git-reference
  4367. (url "https://github.com/chaitanyagupta/chronicity")
  4368. (commit (string-append "v" version))))
  4369. (file-name (git-file-name "chronicity" version))
  4370. (sha256
  4371. (base32 "0rzrl9is2v1aqbm0sym0qx3blnpd0bl13dkkmll6mb3983k2mkax"))))
  4372. (build-system asdf-build-system/sbcl)
  4373. (native-inputs
  4374. (list sbcl-lisp-unit))
  4375. (inputs
  4376. (list sbcl-cl-interpol sbcl-cl-ppcre sbcl-local-time))
  4377. (home-page "https://github.com/chaitanyagupta/chronicity")
  4378. (synopsis "Natural language date and time parser for Common Lisp")
  4379. (description
  4380. "CHRONICITY is Common Lisp natural language date and time parser inspired
  4381. by Ruby's @code{Chronic}.")
  4382. (license license:bsd-3)))
  4383. (define-public ecl-chronicity
  4384. (sbcl-package->ecl-package sbcl-chronicity))
  4385. (define-public cl-chronicity
  4386. (sbcl-package->cl-source-package sbcl-chronicity))
  4387. (define-public sbcl-trivial-mimes
  4388. (let ((commit "a741fc2f567a4f86b853fd4677d75e62c03e51d9")
  4389. (revision "2"))
  4390. (package
  4391. (name "sbcl-trivial-mimes")
  4392. (version (git-version "1.1.0" revision commit))
  4393. (source
  4394. (origin
  4395. (method git-fetch)
  4396. (uri (git-reference
  4397. (url "https://github.com/Shinmera/trivial-mimes")
  4398. (commit commit)))
  4399. (file-name (git-file-name name version))
  4400. (sha256
  4401. (base32 "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di"))))
  4402. (build-system asdf-build-system/sbcl)
  4403. (native-inputs
  4404. (list sbcl-hu.dwim.stefil))
  4405. (inputs
  4406. (list sbcl-cl-fad))
  4407. (home-page "https://shinmera.github.io/trivial-mimes/")
  4408. (synopsis "Tiny Common Lisp library to detect mime types in files")
  4409. (description
  4410. "This is a teensy library that provides some functions to determine the
  4411. mime-type of a file.")
  4412. (license license:zlib))))
  4413. (define-public cl-trivial-mimes
  4414. (sbcl-package->cl-source-package sbcl-trivial-mimes))
  4415. (define-public ecl-trivial-mimes
  4416. (sbcl-package->ecl-package sbcl-trivial-mimes))
  4417. (define-public sbcl-ningle
  4418. (let ((commit "2e85675bbb668d6ef341514fc9f22391a0f506b1")
  4419. (revision "2"))
  4420. (package
  4421. (name "sbcl-ningle")
  4422. (version (git-version "0.3.0" revision commit))
  4423. (source
  4424. (origin
  4425. (method git-fetch)
  4426. (uri (git-reference
  4427. (url "https://github.com/fukamachi/ningle")
  4428. (commit commit)))
  4429. (file-name (git-file-name "cl-ningle" version))
  4430. (sha256
  4431. (base32 "0s9nn8ml1j4839rycvdjcbsynkqnhxw1zmrgpjz48smscwdf1f8p"))))
  4432. (build-system asdf-build-system/sbcl)
  4433. (arguments
  4434. '(#:tests? #f)) ; TODO: pull in clack-test
  4435. (native-inputs
  4436. (list sbcl-prove))
  4437. (inputs
  4438. (list sbcl-cl-syntax sbcl-myway sbcl-lack sbcl-alexandria
  4439. sbcl-babel))
  4440. (home-page "https://8arrow.org/ningle/")
  4441. (synopsis "Super micro framework for Common Lisp")
  4442. (description
  4443. "Ningle is a lightweight web application framework for Common Lisp.")
  4444. (license license:llgpl))))
  4445. (define-public cl-ningle
  4446. (sbcl-package->cl-source-package sbcl-ningle))
  4447. (define-public ecl-ningle
  4448. (sbcl-package->ecl-package sbcl-ningle))
  4449. (define-public sbcl-cl-fastcgi
  4450. (let ((commit "de8b49b26de9863996ec18db28af8ab7e8ac4e20")
  4451. (revision "2"))
  4452. (package
  4453. (name "sbcl-cl-fastcgi")
  4454. (version (git-version "0.2" revision commit))
  4455. (source
  4456. (origin
  4457. (method git-fetch)
  4458. (uri (git-reference
  4459. (url "https://github.com/KDr2/cl-fastcgi/")
  4460. (commit commit)))
  4461. (file-name (git-file-name name version))
  4462. (sha256
  4463. (base32 "0xgmhx766q4nmrvn5z7ag3ikpr9phlh8ypi8b14azshq9lqbq0m7"))))
  4464. (build-system asdf-build-system/sbcl)
  4465. (inputs
  4466. `(("usocket" ,sbcl-usocket)
  4467. ("cffi" ,sbcl-cffi)
  4468. ("fcgi" ,fcgi)))
  4469. (arguments
  4470. `(#:phases
  4471. (modify-phases %standard-phases
  4472. (add-after 'unpack 'fix-paths
  4473. (lambda* (#:key inputs #:allow-other-keys)
  4474. (substitute* "cl-fastcgi.lisp"
  4475. (("\"libfcgi.so\"")
  4476. (string-append
  4477. "\""
  4478. (assoc-ref inputs "fcgi") "/lib/libfcgi.so\""))))))))
  4479. (home-page "https://kdr2.com/project/cl-fastcgi.html")
  4480. (synopsis "FastCGI wrapper for Common Lisp")
  4481. (description
  4482. "CL-FastCGI is a generic version of SB-FastCGI, targeting to run on
  4483. mostly Common Lisp implementation.")
  4484. (license license:bsd-2))))
  4485. (define-public cl-fastcgi
  4486. (sbcl-package->cl-source-package sbcl-cl-fastcgi))
  4487. (define-public ecl-cl-fastcgi
  4488. (sbcl-package->ecl-package sbcl-cl-fastcgi))
  4489. (define-public sbcl-clack
  4490. (let ((commit "6fd0279424f7ba5fd4f92d69a1970846b0b11222")
  4491. (revision "2"))
  4492. (package
  4493. (name "sbcl-clack")
  4494. (version (git-version "2.0.0" revision commit))
  4495. (source
  4496. (origin
  4497. (method git-fetch)
  4498. (uri (git-reference
  4499. (url "https://github.com/fukamachi/clack")
  4500. (commit commit)))
  4501. (file-name (git-file-name "cl-clack" version))
  4502. (sha256
  4503. (base32 "0sfmvqmsg9z13x0v77448rpdqgyprdq739nsbrjw9a28hv9jmkg9"))))
  4504. (build-system asdf-build-system/sbcl)
  4505. (inputs
  4506. `(("alexandria" ,sbcl-alexandria)
  4507. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  4508. ("cl-fastcgi" ,sbcl-cl-fastcgi)
  4509. ("flexi-streams" ,sbcl-flexi-streams)
  4510. ("hunchentoot" ,sbcl-hunchentoot)
  4511. ("lack" ,sbcl-lack)
  4512. ("split-sequence" ,sbcl-split-sequence)
  4513. ("usocket" ,sbcl-usocket)
  4514. ("quri" ,sbcl-quri)))
  4515. (arguments
  4516. '(#:asd-systems '("clack"
  4517. "clack-handler-fcgi"
  4518. "clack-socket"
  4519. "clack-handler-hunchentoot")))
  4520. (home-page "https://github.com/fukamachi/clack")
  4521. (synopsis "Web Application Environment for Common Lisp")
  4522. (description
  4523. "Clack is a web application environment for Common Lisp inspired by
  4524. Python's WSGI and Ruby's Rack.")
  4525. (license license:llgpl))))
  4526. (define-public cl-clack
  4527. (sbcl-package->cl-source-package sbcl-clack))
  4528. (define-public ecl-clack
  4529. (sbcl-package->ecl-package sbcl-clack))
  4530. (define-public sbcl-cl-log
  4531. (let ((commit "8f4b766d51e02245c310526cf1e4534ce634f837")
  4532. (revision "1"))
  4533. (package
  4534. (name "sbcl-cl-log")
  4535. (version "1.0.1")
  4536. (source
  4537. (origin
  4538. (method git-fetch)
  4539. (uri (git-reference
  4540. (url "https://github.com/nicklevine/cl-log")
  4541. (commit commit)))
  4542. (sha256
  4543. (base32 "1r3z9swy1b59swvaa5b97is9ysrfmjvjjhhw56p7p5hqg93b92ak"))
  4544. (file-name (git-file-name "cl-log" version))))
  4545. (build-system asdf-build-system/sbcl)
  4546. (synopsis "Common Lisp general purpose logging utility")
  4547. (description "CL-LOG is a general purpose logging utility, loosely modelled
  4548. in some respects after Gary King's Log5. Its features include: logging to
  4549. several destinations at once, via \"messengers\", each messenger is tailored to
  4550. accept some log messages and reject others, and this tailoring can be changed
  4551. on-the-fly, very rapid processing of messages which are rejected by all
  4552. messengers, fully independent use of the utility by several different
  4553. sub-systems in an application, support for messengers which cl:format text to a
  4554. stream, support for messengers which do not invoke cl:format, timestamps in
  4555. theory accurate to internal-time-units-per-second.")
  4556. (home-page "https://github.com/nicklevine/cl-log")
  4557. (license license:expat))))
  4558. (define-public cl-log
  4559. (sbcl-package->cl-source-package sbcl-cl-log))
  4560. (define-public ecl-cl-log
  4561. (sbcl-package->ecl-package sbcl-cl-log))
  4562. (define-public sbcl-log4cl
  4563. (let ((commit "8c48d6f41d3a1475d0a91eed0638b9eecc398e35")
  4564. (revision "1"))
  4565. (package
  4566. (name "sbcl-log4cl")
  4567. (version (git-version "1.1.3" revision commit))
  4568. (source
  4569. (origin
  4570. (method git-fetch)
  4571. (uri (git-reference
  4572. (url "https://github.com/sharplispers/log4cl")
  4573. (commit commit)))
  4574. (file-name (git-file-name "log4cl" version))
  4575. (sha256
  4576. (base32 "0166d9aip366pbpdk5gsi2f6xad6q61lssxgbrypa8zslwjn8736"))))
  4577. (build-system asdf-build-system/sbcl)
  4578. (native-inputs
  4579. (list sbcl-stefil))
  4580. (inputs
  4581. (list sbcl-bordeaux-threads))
  4582. (home-page "https://github.com/7max/log4cl")
  4583. (synopsis "Common Lisp logging framework, modeled after Log4J")
  4584. (description
  4585. "This is a Common Lisp logging framework that can log at various levels
  4586. and mix text with expressions.")
  4587. (license license:asl2.0))))
  4588. (define-public cl-log4cl
  4589. (sbcl-package->cl-source-package sbcl-log4cl))
  4590. (define-public ecl-log4cl
  4591. (sbcl-package->ecl-package sbcl-log4cl))
  4592. (define-public sbcl-printv
  4593. (let ((commit "e717a7fe076dae861a96117b2f9af29db8d2294d")
  4594. (revision "2"))
  4595. (package
  4596. (name "sbcl-printv")
  4597. (version (git-version "0.1.0" revision commit))
  4598. (source
  4599. (origin
  4600. (method git-fetch)
  4601. (uri (git-reference
  4602. (url "https://github.com/danlentz/printv")
  4603. (commit commit)))
  4604. (file-name (git-file-name "cl-printv" version))
  4605. (sha256
  4606. (base32 "07agyzkwp3w2r4d2anrmr8h00yngpr5dq9mjd3m4kzhn1jcmilfb"))))
  4607. (build-system asdf-build-system/sbcl)
  4608. (inputs
  4609. (list figlet))
  4610. (arguments
  4611. `(#:phases
  4612. (modify-phases %standard-phases
  4613. (add-after 'unpack 'patch-figlet-executable
  4614. (lambda* (#:key inputs #:allow-other-keys)
  4615. (substitute* "printv.lisp"
  4616. (("\"figlet")
  4617. (string-append "\"" (search-input-file inputs
  4618. "/bin/figlet")))))))))
  4619. (home-page "https://github.com/danlentz/printv")
  4620. (synopsis "Common Lisp tracing and debug-logging macro")
  4621. (description
  4622. "@code{PRINTV} is a \"batteries-included\" tracing and debug-logging
  4623. macro for Common Lisp.")
  4624. (license license:asl2.0))))
  4625. (define-public ecl-printv
  4626. (sbcl-package->ecl-package sbcl-printv))
  4627. (define-public cl-printv
  4628. (sbcl-package->cl-source-package sbcl-printv))
  4629. (define-public sbcl-cl-debug
  4630. (let ((commit "b334280806104ee7f7d3aec666bf7e08d2f89b31")
  4631. (revision "1"))
  4632. (package
  4633. (name "sbcl-cl-debug")
  4634. (version (git-version "1.0.0" revision commit))
  4635. (source
  4636. (origin
  4637. (method git-fetch)
  4638. (uri (git-reference
  4639. (url "https://github.com/kmx-io/cl-debug")
  4640. (commit commit)))
  4641. (file-name (git-file-name "cl-debug" version))
  4642. (sha256
  4643. (base32 "0w5vxbjsgr3zfpivdmghmhzxskfdvm1p34c8whwps2xlhypxsa78"))))
  4644. (build-system asdf-build-system/sbcl)
  4645. (home-page "https://github.com/kmx-io/cl-debug")
  4646. (synopsis "Common Lisp cross-package debugging facility")
  4647. (description
  4648. "CL-DEBUG provides a unified way to enable or disable debug-specific code.
  4649. Debugging code can be enabled or disabled relative to program features denoted
  4650. by either a symbol or a keyword.")
  4651. (license license:isc))))
  4652. (define-public ecl-cl-debug
  4653. (sbcl-package->ecl-package sbcl-cl-debug))
  4654. (define-public cl-debug
  4655. (sbcl-package->cl-source-package sbcl-cl-debug))
  4656. (define-public sbcl-verbose
  4657. (let ((commit "c5b7ecd465be61b35af17ef57564697b88397174")
  4658. (revision "1"))
  4659. (package
  4660. (name "sbcl-verbose")
  4661. (version (git-version "2.0.0" revision commit))
  4662. (source
  4663. (origin
  4664. (method git-fetch)
  4665. (uri (git-reference
  4666. (url "https://github.com/Shinmera/verbose/")
  4667. (commit commit)))
  4668. (file-name (git-file-name "verbose" version))
  4669. (sha256
  4670. (base32 "0r51ydj5v7afi2jrlscbhxprv13d9vzg5316g1yzwaxc1kzsdsw6"))))
  4671. (build-system asdf-build-system/sbcl)
  4672. (inputs
  4673. (list sbcl-bordeaux-threads sbcl-dissect sbcl-documentation-utils
  4674. sbcl-local-time sbcl-piping))
  4675. (home-page "https://shinmera.github.io/verbose/")
  4676. (synopsis "Logging framework using the piping library")
  4677. (description
  4678. "This is a Common Lisp library providing logging faciltiy similar to
  4679. @code{CL-LOG} and @code{LOG4CL}.")
  4680. (license license:zlib))))
  4681. (define-public ecl-verbose
  4682. (sbcl-package->ecl-package sbcl-verbose))
  4683. (define-public cl-verbose
  4684. (sbcl-package->cl-source-package sbcl-verbose))
  4685. (define-public sbcl-find-port
  4686. (let ((commit "811727f88d7f000623bf92fdb0e64678a7112a28")
  4687. (revision "2"))
  4688. (package
  4689. (name "sbcl-find-port")
  4690. (build-system asdf-build-system/sbcl)
  4691. (version (git-version "0.1" revision commit))
  4692. (home-page "https://github.com/eudoxia0/find-port")
  4693. (source
  4694. (origin
  4695. (method git-fetch)
  4696. (uri (git-reference
  4697. (url home-page)
  4698. (commit commit)))
  4699. (file-name (git-file-name name version))
  4700. (sha256
  4701. (base32
  4702. "1fw6q7d2bxxb7fqk548ylq8mx4sz95yc0q5h0rwd0mnqjrbwbari"))))
  4703. (native-inputs
  4704. (list sbcl-fiveam))
  4705. (inputs
  4706. (list sbcl-usocket))
  4707. (synopsis "Find open ports programmatically in Common Lisp")
  4708. (description "This is a small Common Lisp library that finds an open
  4709. port within a range.")
  4710. (license license:expat))))
  4711. (define-public cl-find-port
  4712. (sbcl-package->cl-source-package sbcl-find-port))
  4713. (define-public ecl-find-port
  4714. (sbcl-package->ecl-package sbcl-find-port))
  4715. (define-public sbcl-py4cl
  4716. (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
  4717. (revision "1"))
  4718. (package
  4719. (name "sbcl-py4cl")
  4720. (version (git-version "0.0.0" revision commit))
  4721. (source
  4722. (origin
  4723. (method git-fetch)
  4724. (uri (git-reference
  4725. (url "https://github.com/bendudson/py4cl")
  4726. (commit commit)))
  4727. (file-name (git-file-name name version))
  4728. (sha256
  4729. (base32
  4730. "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
  4731. (modules '((guix build utils)))))
  4732. (build-system asdf-build-system/sbcl)
  4733. (native-inputs
  4734. (list sbcl-clunit))
  4735. (inputs
  4736. (list sbcl-trivial-garbage))
  4737. (propagated-inputs
  4738. ;; This package doesn't do anything without python available
  4739. (list python
  4740. ;; For multi-dimensional array support
  4741. python-numpy))
  4742. (arguments
  4743. '(#:phases
  4744. (modify-phases %standard-phases
  4745. (add-after 'unpack 'replace-*base-directory*-var
  4746. (lambda* (#:key outputs #:allow-other-keys)
  4747. ;; In the ASD, the author makes an attempt to
  4748. ;; programatically determine the location of the
  4749. ;; source-code so lisp can call into "py4cl.py". We can
  4750. ;; hard-code this since we know where this file will
  4751. ;; reside.
  4752. (substitute* "src/callpython.lisp"
  4753. (("py4cl/config:\\*base-directory\\*")
  4754. (string-append
  4755. "\""
  4756. (assoc-ref outputs "out")
  4757. "/share/common-lisp/sbcl-source/py4cl/"
  4758. "\""))))))))
  4759. (synopsis "Call python from Common Lisp")
  4760. (description
  4761. "Py4CL is a bridge between Common Lisp and Python, which enables Common
  4762. Lisp to interact with Python code. It uses streams to communicate with a
  4763. separate python process, the approach taken by cl4py. This is different to
  4764. the CFFI approach used by burgled-batteries, but has the same goal.")
  4765. (home-page "https://github.com/bendudson/py4cl")
  4766. ;; MIT License
  4767. (license license:expat))))
  4768. (define-public cl-py4cl
  4769. (sbcl-package->cl-source-package sbcl-py4cl))
  4770. (define-public ecl-py4cl
  4771. (sbcl-package->ecl-package sbcl-py4cl))
  4772. (define-public sbcl-schemeish
  4773. (let ((commit "dff57bafae5d0cffa104c8fdc4146502f32d7f85")
  4774. (revision "1"))
  4775. (package
  4776. (name "sbcl-schemeish")
  4777. (version (git-version "0.0.1" revision commit))
  4778. (source
  4779. (origin
  4780. (method git-fetch)
  4781. (uri (git-reference
  4782. (url "https://github.com/chebert/schemeish")
  4783. (commit commit)))
  4784. (file-name (git-file-name name version))
  4785. (sha256
  4786. (base32 "0q9b07spmhg1b576cnnacvkf7zr3mab2rdydfylbn92y9mms9vyj"))))
  4787. (build-system asdf-build-system/sbcl)
  4788. (inputs
  4789. (list sbcl-trivial-arguments))
  4790. (synopsis "Scheme style syntax/macros/functions for Common Lisp")
  4791. (description
  4792. "Schemeish implements several useful Scheme constructs for Common Lisp.
  4793. These include named-let, define, scheme argument lists, and a shortcut to
  4794. FUNCALL with [] instead of ().")
  4795. (home-page "https://github.com/chebert/schemeish")
  4796. ;; MIT License
  4797. (license license:expat))))
  4798. (define-public cl-schemeish
  4799. (sbcl-package->cl-source-package sbcl-schemeish))
  4800. (define-public ecl-schemeish
  4801. (sbcl-package->ecl-package sbcl-schemeish))
  4802. (define-public sbcl-parse-declarations
  4803. (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
  4804. (revision "1"))
  4805. (package
  4806. (name "sbcl-parse-declarations")
  4807. (version (git-version "1.0.0" revision commit))
  4808. (source
  4809. (origin
  4810. (method git-fetch)
  4811. (uri (git-reference
  4812. (url (string-append
  4813. "https://gitlab.common-lisp.net/parse-declarations/"
  4814. "parse-declarations.git"))
  4815. (commit commit)))
  4816. (file-name (git-file-name name version))
  4817. (sha256
  4818. (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
  4819. (build-system asdf-build-system/sbcl)
  4820. (arguments
  4821. `(#:asd-systems '("parse-declarations-1.0")))
  4822. (home-page "https://common-lisp.net/project/parse-declarations/")
  4823. (synopsis "Parse, filter, and build declarations")
  4824. (description
  4825. "Parse-Declarations is a Common Lisp library to help writing
  4826. macros which establish bindings. To be semantically correct, such
  4827. macros must take user declarations into account, as these may affect
  4828. the bindings they establish. Yet the ANSI standard of Common Lisp does
  4829. not provide any operators to work with declarations in a convenient,
  4830. high-level way. This library provides such operators.")
  4831. ;; MIT License
  4832. (license license:expat))))
  4833. (define-public cl-parse-declarations
  4834. (sbcl-package->cl-source-package sbcl-parse-declarations))
  4835. (define-public ecl-parse-declarations
  4836. (sbcl-package->ecl-package sbcl-parse-declarations))
  4837. (define-public sbcl-burgled-batteries3
  4838. (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
  4839. (revision "2"))
  4840. (package
  4841. (name "sbcl-burgled-batteries3")
  4842. (version (git-version "0.0.0" revision commit))
  4843. (source
  4844. (origin
  4845. (method git-fetch)
  4846. (uri (git-reference
  4847. (url "https://github.com/snmsts/burgled-batteries3")
  4848. (commit commit)))
  4849. (file-name (git-file-name name version))
  4850. (sha256
  4851. (base32
  4852. "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))
  4853. (patches
  4854. (search-patches "sbcl-burgled-batteries3-fix-signals.patch"))))
  4855. (build-system asdf-build-system/sbcl)
  4856. (arguments
  4857. `(#:tests? #f
  4858. #:modules (((guix build python-build-system) #:select (python-version))
  4859. ,@%asdf-build-system-modules)
  4860. #:imported-modules ((guix build python-build-system)
  4861. ,@%asdf-build-system-modules)
  4862. #:phases
  4863. (modify-phases (@ (guix build asdf-build-system) %standard-phases)
  4864. (add-after 'unpack 'set-*cpython-include-dir*-var
  4865. (lambda* (#:key inputs #:allow-other-keys)
  4866. (let ((python (assoc-ref inputs "python")))
  4867. (setenv "BB_PYTHON3_INCLUDE_DIR"
  4868. (string-append python "/include/python"
  4869. (python-version python)))
  4870. (setenv "BB_PYTHON3_DYLIB"
  4871. (string-append python "/lib/libpython3.so"))
  4872. #t)))
  4873. (add-after 'unpack 'adjust-for-python-3.8
  4874. (lambda _
  4875. ;; This method is no longer part of the public API.
  4876. (substitute* "ffi-interface.lisp"
  4877. ((".*PyEval_ReInitThreads.*")
  4878. ""))
  4879. #t)))))
  4880. (native-inputs
  4881. (list sbcl-cl-fad sbcl-lift sbcl-cl-quickcheck))
  4882. (inputs
  4883. `(("python" ,python)
  4884. ("sbcl-cffi" ,sbcl-cffi)
  4885. ("sbcl-alexandria" , sbcl-alexandria)
  4886. ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
  4887. ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
  4888. (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
  4889. (description
  4890. "This package provides a shim between Python3 (specifically, the
  4891. CPython implementation of Python) and Common Lisp.")
  4892. (home-page "https://github.com/snmsts/burgled-batteries3")
  4893. (license license:expat))))
  4894. (define-public cl-burgled-batteries3
  4895. (sbcl-package->cl-source-package sbcl-burgled-batteries3))
  4896. (define-public ecl-burgled-batteries3
  4897. (sbcl-package->ecl-package sbcl-burgled-batteries3))
  4898. (define-public sbcl-metabang-bind
  4899. (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
  4900. (revision "1"))
  4901. (package
  4902. (name "sbcl-metabang-bind")
  4903. (version (git-version "0.8.0" revision commit))
  4904. (source
  4905. (origin
  4906. (method git-fetch)
  4907. (uri (git-reference
  4908. (url "https://github.com/gwkkwg/metabang-bind")
  4909. (commit commit)))
  4910. (file-name (git-file-name name version))
  4911. (sha256
  4912. (base32
  4913. "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
  4914. (build-system asdf-build-system/sbcl)
  4915. (native-inputs
  4916. (list sbcl-lift))
  4917. (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
  4918. (description
  4919. "Bind extends the idea of of let and destructing to provide a uniform
  4920. syntax for all your accessor needs. It combines @code{let},
  4921. @code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
  4922. editing, property or association-lists, and @code{multiple-value-bind} and a
  4923. whole lot more into a single form.")
  4924. (home-page "https://common-lisp.net/project/metabang-bind/")
  4925. ;; MIT License
  4926. (license license:expat))))
  4927. (define-public cl-metabang-bind
  4928. (sbcl-package->cl-source-package sbcl-metabang-bind))
  4929. (define-public ecl-metabang-bind
  4930. (sbcl-package->ecl-package sbcl-metabang-bind))
  4931. (define-public sbcl-fare-utils
  4932. (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
  4933. (revision "1"))
  4934. (package
  4935. (name "sbcl-fare-utils")
  4936. (version (git-version "1.0.0.5" revision commit))
  4937. (source
  4938. (origin
  4939. (method git-fetch)
  4940. (uri
  4941. (git-reference
  4942. (url
  4943. "https://gitlab.common-lisp.net/frideau/fare-utils.git")
  4944. (commit commit)))
  4945. (file-name (git-file-name name version))
  4946. (sha256
  4947. (base32
  4948. "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
  4949. (build-system asdf-build-system/sbcl)
  4950. (arguments
  4951. `(#:test-asd-file "test/fare-utils-test.asd"))
  4952. (native-inputs
  4953. (list sbcl-hu.dwim.stefil))
  4954. (synopsis "Collection of utilities and data structures")
  4955. (description
  4956. "fare-utils is a small collection of utilities. It contains a lot of
  4957. basic everyday functions and macros.")
  4958. (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
  4959. ;; MIT License
  4960. (license license:expat))))
  4961. (define-public cl-fare-utils
  4962. (sbcl-package->cl-source-package sbcl-fare-utils))
  4963. (define-public ecl-fare-utils
  4964. (sbcl-package->ecl-package sbcl-fare-utils))
  4965. (define-public sbcl-fare-mop
  4966. (let ((commit "538aa94590a0354f382eddd9238934763434af30")
  4967. (revision "1"))
  4968. (package
  4969. (name "sbcl-fare-mop")
  4970. (version (git-version "1.0.1" revision commit))
  4971. (source
  4972. (origin
  4973. (method git-fetch)
  4974. (uri (git-reference
  4975. (url "https://github.com/fare/fare-mop")
  4976. (commit commit)))
  4977. (file-name (git-file-name "fare-mop" version))
  4978. (sha256
  4979. (base32
  4980. "0maxs8392953fhnaa6zwnm2mdbhxjxipp4g4rvypm06ixr6pyv1c"))))
  4981. (build-system asdf-build-system/sbcl)
  4982. (inputs
  4983. (list sbcl-closer-mop sbcl-fare-utils))
  4984. (home-page "https://github.com/fare/fare-mop")
  4985. (synopsis "General purpose Common Lisp utilities using the MOP")
  4986. (description
  4987. "FARE-MOP is a small collection of utilities using the MetaObject
  4988. Protocol. It notably contains a SIMPLE-PRINT-OBJECT method, and
  4989. a SIMPLE-PRINT-OBJECT-MIXIN mixin that allow you to trivially define
  4990. PRINT-OBJECT methods that print the interesting slots in your objects, which is
  4991. great for REPL interaction and debugging.")
  4992. (license license:unlicense))))
  4993. (define-public ecl-fare-mop
  4994. (sbcl-package->ecl-package sbcl-fare-mop))
  4995. (define-public cl-fare-mop
  4996. (sbcl-package->cl-source-package sbcl-fare-mop))
  4997. (define-public sbcl-inferior-shell
  4998. (let ((commit "15c2d04a7398db965ea1c3ba2d49efa7c851f2c2")
  4999. (revision "1"))
  5000. (package
  5001. (name "sbcl-inferior-shell")
  5002. (version (git-version "2.0.5" revision commit))
  5003. (source
  5004. (origin
  5005. (method git-fetch)
  5006. (uri (git-reference
  5007. (url "https://github.com/fare/inferior-shell")
  5008. (commit commit)))
  5009. (file-name (git-file-name "inferior-shell" version))
  5010. (sha256
  5011. (base32 "02qx37zzk5j4xmwh77k2qa2wvnzvaj6qml5dh2q7b6b1ljvgcj4m"))))
  5012. (build-system asdf-build-system/sbcl)
  5013. (native-inputs
  5014. (list sbcl-hu.dwim.stefil))
  5015. (inputs
  5016. (list sbcl-alexandria sbcl-fare-mop sbcl-fare-quasiquote
  5017. sbcl-fare-utils sbcl-trivia))
  5018. (home-page "https://github.com/fare/inferior-shell")
  5019. (synopsis "Spawn local or remote processes and shell pipes")
  5020. (description
  5021. "This package provides a Common Lisp system helping in scripting, it
  5022. uses @code{uiop:run-program} as a backend.")
  5023. (license license:expat))))
  5024. (define-public ecl-inferior-shell
  5025. (sbcl-package->ecl-package sbcl-inferior-shell))
  5026. (define-public cl-inferior-shell
  5027. (sbcl-package->cl-source-package sbcl-inferior-shell))
  5028. (define-public sbcl-trivial-utf-8
  5029. (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
  5030. (revision "1"))
  5031. (package
  5032. (name "sbcl-trivial-utf-8")
  5033. (version (git-version "0.0.0" revision commit))
  5034. (source
  5035. (origin
  5036. (method git-fetch)
  5037. (uri
  5038. (git-reference
  5039. (url (string-append "https://gitlab.common-lisp.net/"
  5040. "trivial-utf-8/trivial-utf-8.git"))
  5041. (commit commit)))
  5042. (file-name (git-file-name name version))
  5043. (sha256
  5044. (base32
  5045. "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1"))))
  5046. (arguments
  5047. ;; Guix incorrectly assumes the "8" is part of the version
  5048. ;; number and lobs it off.
  5049. `(#:asd-systems '("trivial-utf-8")))
  5050. (build-system asdf-build-system/sbcl)
  5051. (synopsis "UTF-8 input/output library")
  5052. (description
  5053. "The Babel library solves a similar problem while understanding more
  5054. encodings. Trivial UTF-8 was written before Babel existed, but for new
  5055. projects you might be better off going with Babel. The one plus that Trivial
  5056. UTF-8 has is that it doesn't depend on any other libraries.")
  5057. (home-page "https://common-lisp.net/project/trivial-utf-8/")
  5058. (license license:bsd-3))))
  5059. (define-public cl-trivial-utf-8
  5060. (sbcl-package->cl-source-package sbcl-trivial-utf-8))
  5061. (define-public ecl-trivial-utf-8
  5062. (sbcl-package->ecl-package sbcl-trivial-utf-8))
  5063. (define-public sbcl-idna
  5064. (package
  5065. (name "sbcl-idna")
  5066. (build-system asdf-build-system/sbcl)
  5067. (version "0.2.2")
  5068. (home-page "https://github.com/antifuchs/idna")
  5069. (source
  5070. (origin
  5071. (method git-fetch)
  5072. (uri (git-reference
  5073. (url home-page)
  5074. (commit version)))
  5075. (file-name (git-file-name name version))
  5076. (sha256
  5077. (base32
  5078. "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
  5079. (inputs
  5080. (list sbcl-split-sequence))
  5081. (synopsis "IDNA string encoding and decoding routines for Common Lisp")
  5082. (description "This Common Lisp library provides string encoding and
  5083. decoding routines for IDNA, the International Domain Names in Applications.")
  5084. (license license:expat)))
  5085. (define-public cl-idna
  5086. (sbcl-package->cl-source-package sbcl-idna))
  5087. (define-public ecl-idna
  5088. (sbcl-package->ecl-package sbcl-idna))
  5089. (define-public sbcl-swap-bytes
  5090. (package
  5091. (name "sbcl-swap-bytes")
  5092. (build-system asdf-build-system/sbcl)
  5093. (version "1.2")
  5094. (home-page "https://github.com/sionescu/swap-bytes")
  5095. (source
  5096. (origin
  5097. (method git-fetch)
  5098. (uri (git-reference
  5099. (url home-page)
  5100. (commit (string-append "v" version))))
  5101. (file-name (git-file-name name version))
  5102. (sha256
  5103. (base32
  5104. "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
  5105. (inputs
  5106. (list sbcl-trivial-features))
  5107. (native-inputs
  5108. (list sbcl-fiveam))
  5109. (synopsis "Efficient endianness conversion for Common Lisp")
  5110. (description "This Common Lisp library provides optimized byte-swapping
  5111. primitives. The library can change endianness of unsigned integers of length
  5112. 1/2/4/8. Very useful in implementing various network protocols and file
  5113. formats.")
  5114. (license license:expat)))
  5115. (define-public cl-swap-bytes
  5116. (sbcl-package->cl-source-package sbcl-swap-bytes))
  5117. (define-public ecl-swap-bytes
  5118. (sbcl-package->ecl-package sbcl-swap-bytes))
  5119. (define-public sbcl-iolib
  5120. (package
  5121. (name "sbcl-iolib")
  5122. (version "0.8.4")
  5123. (home-page "https://github.com/sionescu/iolib")
  5124. (source
  5125. (origin
  5126. (method git-fetch)
  5127. (uri (git-reference
  5128. (url home-page)
  5129. (commit (string-append "v" version))))
  5130. (file-name (git-file-name name version))
  5131. (sha256
  5132. (base32
  5133. "1f43jqqqwp9n7xksqxw91myapsdbc2dxck6nd6flakbnp9haylyq"))))
  5134. (build-system asdf-build-system/sbcl)
  5135. (inputs
  5136. `(("alexandria" ,sbcl-alexandria)
  5137. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  5138. ("cffi" ,sbcl-cffi)
  5139. ("idna" ,sbcl-idna)
  5140. ("libfixposix" ,libfixposix)
  5141. ("split-sequence" ,sbcl-split-sequence)
  5142. ("swap-bytes" ,sbcl-swap-bytes)))
  5143. (arguments
  5144. '(#:asd-files '("iolib.asdf.asd"
  5145. "iolib.conf.asd"
  5146. "iolib.common-lisp.asd"
  5147. "iolib.base.asd"
  5148. "iolib.asd")
  5149. #:asd-systems '("iolib"
  5150. "iolib/os")
  5151. #:phases
  5152. (modify-phases %standard-phases
  5153. (add-after 'unpack 'fix-paths
  5154. (lambda* (#:key inputs #:allow-other-keys)
  5155. (substitute* "src/syscalls/ffi-functions-unix.lisp"
  5156. (("\\(:default \"libfixposix\"\\)")
  5157. (string-append
  5158. "(:default \""
  5159. (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
  5160. ;; Socket tests need Internet access, disable them.
  5161. (substitute* "iolib.asd"
  5162. (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
  5163. "")))))))
  5164. (synopsis "Common Lisp I/O library")
  5165. (description "IOlib is to be a better and more modern I/O library than
  5166. the standard Common Lisp library. It contains a socket library, a DNS
  5167. resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
  5168. and @code{kqueue(2)}), a pathname library and file-system utilities.")
  5169. (license license:expat)))
  5170. (define-public cl-iolib
  5171. (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
  5172. (package
  5173. (inherit parent)
  5174. (propagated-inputs
  5175. ;; Need header to compile.
  5176. (modify-inputs (package-propagated-inputs parent)
  5177. (prepend libfixposix))))))
  5178. (define-public ecl-iolib
  5179. (sbcl-package->ecl-package sbcl-iolib))
  5180. (define-public sbcl-ieee-floats
  5181. (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
  5182. (revision "1"))
  5183. (package
  5184. (name "sbcl-ieee-floats")
  5185. (build-system asdf-build-system/sbcl)
  5186. (version (git-version "20170924" revision commit))
  5187. (home-page "https://github.com/marijnh/ieee-floats/")
  5188. (source
  5189. (origin
  5190. (method git-fetch)
  5191. (uri (git-reference
  5192. (url home-page)
  5193. (commit commit)))
  5194. (file-name (git-file-name name version))
  5195. (sha256
  5196. (base32
  5197. "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
  5198. (native-inputs
  5199. (list sbcl-fiveam))
  5200. (synopsis "IEEE 754 binary representation for floats in Common Lisp")
  5201. (description "This is a Common Lisp library that converts
  5202. floating point values to IEEE 754 binary representation.")
  5203. (license license:bsd-3))))
  5204. (define-public cl-ieee-floats
  5205. (sbcl-package->cl-source-package sbcl-ieee-floats))
  5206. (define-public ecl-ieee-floats
  5207. (sbcl-package->ecl-package sbcl-ieee-floats))
  5208. (define sbcl-closure-common
  5209. (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
  5210. (revision "1"))
  5211. (package
  5212. (name "sbcl-closure-common")
  5213. (build-system asdf-build-system/sbcl)
  5214. (version (git-version "20101006" revision commit))
  5215. (home-page "https://common-lisp.net/project/cxml/")
  5216. (source
  5217. (origin
  5218. (method git-fetch)
  5219. (uri (git-reference
  5220. (url "https://github.com/sharplispers/closure-common")
  5221. (commit commit)))
  5222. (file-name (git-file-name name version))
  5223. (sha256
  5224. (base32
  5225. "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
  5226. (inputs
  5227. `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
  5228. ("babel" ,sbcl-babel)))
  5229. (synopsis "Support Common Lisp library for CXML")
  5230. (description "Closure-common is an internal helper library. The name
  5231. Closure is a reference to the web browser it was originally written for.")
  5232. ;; TODO: License?
  5233. (license #f))))
  5234. (define-public sbcl-cxml
  5235. (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
  5236. (revision "1"))
  5237. (package
  5238. (name "sbcl-cxml")
  5239. (version (git-version "0.0.0" revision commit))
  5240. (source
  5241. (origin
  5242. (method git-fetch)
  5243. (uri (git-reference
  5244. (url "https://github.com/sharplispers/cxml")
  5245. (commit commit)))
  5246. (file-name (git-file-name name version))
  5247. (sha256
  5248. (base32
  5249. "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
  5250. (build-system asdf-build-system/sbcl)
  5251. (inputs
  5252. (list sbcl-closure-common sbcl-puri sbcl-trivial-gray-streams))
  5253. (synopsis "Common Lisp XML parser")
  5254. (description "CXML implements a namespace-aware, validating XML 1.0
  5255. parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
  5256. offered, one SAX-like, the other similar to StAX.")
  5257. (home-page "https://common-lisp.net/project/cxml/")
  5258. (license license:llgpl))))
  5259. (define-public cl-cxml
  5260. (sbcl-package->cl-source-package sbcl-cxml))
  5261. (define-public ecl-cxml
  5262. (sbcl-package->ecl-package sbcl-cxml))
  5263. (define-public sbcl-cxml-rng
  5264. (let ((commit "bdcfeb92798694b2935a8321e641d8803e814b7b")
  5265. (revision "1"))
  5266. (package
  5267. (name "sbcl-cxml-rng")
  5268. (version (git-version "0.0.0" revision commit))
  5269. (source
  5270. (origin
  5271. (method git-fetch)
  5272. (uri (git-reference
  5273. (url "http://www.lichteblau.com/git/cxml-rng.git")
  5274. (commit commit)))
  5275. (file-name (git-file-name name version))
  5276. (sha256
  5277. (base32
  5278. "1rld038hmvm0whaffkszd5ks7mg44z1vfbgddal434df8sgspzql"))))
  5279. (build-system asdf-build-system/sbcl)
  5280. (inputs
  5281. (list sbcl-cxml sbcl-cl-ppcre sbcl-cl-yacc sbcl-parse-number
  5282. sbcl-cl-base64))
  5283. (synopsis "Relax NG for Closure XML (CXML)")
  5284. (description "An implementation of Relax NG schema validation written in
  5285. Common Lisp, including support for compact syntax, DTD Compatibility, and the
  5286. XSD type library.")
  5287. (home-page "http://www.lichteblau.com/cxml-rng/")
  5288. (license license:bsd-2))))
  5289. (define-public cl-cxml-rng
  5290. (sbcl-package->cl-source-package sbcl-cxml-rng))
  5291. ;; FIXME: Fails on ECL with
  5292. ;; In function STRUCTURE-SET, the value of the first argument is
  5293. ;; #<empty 0x7fffeb0fd440>
  5294. ;; which is not of the expected type %TYPED-PATTERN.
  5295. ;; (define-public ecl-cxml-rng
  5296. ;; (sbcl-package->ecl-package sbcl-cxml-rng))
  5297. (define-public sbcl-cl-reexport
  5298. (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
  5299. (revision "1"))
  5300. (package
  5301. (name "sbcl-cl-reexport")
  5302. (build-system asdf-build-system/sbcl)
  5303. (version (git-version "0.1" revision commit))
  5304. (home-page "https://github.com/takagi/cl-reexport")
  5305. (source
  5306. (origin
  5307. (method git-fetch)
  5308. (uri (git-reference
  5309. (url "https://github.com/takagi/cl-reexport")
  5310. (commit commit)))
  5311. (file-name (git-file-name "cl-reexport" version))
  5312. (sha256
  5313. (base32
  5314. "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
  5315. (inputs
  5316. (list sbcl-alexandria))
  5317. (arguments
  5318. ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
  5319. `(#:tests? #f))
  5320. (synopsis "Reexport external symbols in other Common Lisp packages")
  5321. (description
  5322. "Cl-reexport makes a package reexport symbols which are external
  5323. symbols in other Common Lisp packages. This fanctionality is intended to be
  5324. used with (virtual) hierarchical packages.")
  5325. (license license:llgpl))))
  5326. (define-public cl-reexport
  5327. (sbcl-package->cl-source-package sbcl-cl-reexport))
  5328. (define-public ecl-cl-reexport
  5329. (sbcl-package->ecl-package sbcl-cl-reexport))
  5330. (define-public sbcl-cl-cookie
  5331. (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
  5332. (revision "1"))
  5333. (package
  5334. (name "sbcl-cl-cookie")
  5335. (build-system asdf-build-system/sbcl)
  5336. (version (git-version "0.9.10" revision commit))
  5337. (home-page "https://github.com/fukamachi/cl-cookie")
  5338. (source
  5339. (origin
  5340. (method git-fetch)
  5341. (uri (git-reference
  5342. (url home-page)
  5343. (commit commit)))
  5344. (file-name (git-file-name name version))
  5345. (sha256
  5346. (base32
  5347. "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
  5348. (inputs
  5349. `(("proc-parse" ,sbcl-proc-parse)
  5350. ("alexandria" ,sbcl-alexandria)
  5351. ("quri" ,sbcl-quri)
  5352. ("cl-ppcre" ,sbcl-cl-ppcre)
  5353. ("local-time" ,sbcl-local-time)))
  5354. (native-inputs
  5355. (list sbcl-prove))
  5356. (arguments
  5357. '(#:asd-systems '("cl-cookie-test" "cl-cookie")))
  5358. (synopsis "HTTP cookie manager for Common Lisp")
  5359. (description "cl-cookie is a Common Lisp library featuring parsing of
  5360. cookie headers, cookie creation, cookie jar creation and more.")
  5361. (license license:bsd-2))))
  5362. (define-public cl-cookie
  5363. (sbcl-package->cl-source-package sbcl-cl-cookie))
  5364. (define-public ecl-cl-cookie
  5365. (sbcl-package->ecl-package sbcl-cl-cookie))
  5366. (define-public sbcl-dexador
  5367. (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
  5368. (revision "1"))
  5369. (package
  5370. (name "sbcl-dexador")
  5371. (build-system asdf-build-system/sbcl)
  5372. (version "0.9.14" )
  5373. (home-page "https://github.com/fukamachi/dexador")
  5374. (source
  5375. (origin
  5376. (method git-fetch)
  5377. (uri (git-reference
  5378. (url home-page)
  5379. (commit commit)))
  5380. (file-name (git-file-name name version))
  5381. (sha256
  5382. (base32
  5383. "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
  5384. (inputs
  5385. `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
  5386. ("babel" ,sbcl-babel)
  5387. ("usocket" ,sbcl-usocket)
  5388. ("fast-http" ,sbcl-fast-http)
  5389. ("quri" ,sbcl-quri)
  5390. ("fast-io" ,sbcl-fast-io)
  5391. ("chunga" ,sbcl-chunga)
  5392. ("cl-ppcre" ,sbcl-cl-ppcre)
  5393. ("cl-cookie" ,sbcl-cl-cookie)
  5394. ("trivial-mimes" ,sbcl-trivial-mimes)
  5395. ("chipz" ,sbcl-chipz)
  5396. ("cl-base64" ,sbcl-cl-base64)
  5397. ("cl-reexport" ,sbcl-cl-reexport)
  5398. ("cl+ssl" ,sbcl-cl+ssl)
  5399. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  5400. ("alexandria" ,sbcl-alexandria)))
  5401. (native-inputs
  5402. `(("prove" ,sbcl-prove)
  5403. ("lack" ,sbcl-lack)
  5404. ("clack" ,sbcl-clack)
  5405. ("babel" ,sbcl-babel)
  5406. ("alexandria" ,sbcl-alexandria)
  5407. ("cl-ppcre" ,sbcl-cl-ppcre)
  5408. ("local-time" ,sbcl-local-time)
  5409. ("trivial-features" ,sbcl-trivial-features)))
  5410. (arguments
  5411. ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
  5412. `(#:tests? #f
  5413. #:phases
  5414. (modify-phases %standard-phases
  5415. (add-after 'unpack 'fix-permissions
  5416. (lambda _ (make-file-writable "t/data/test.gz") #t)))))
  5417. (synopsis "Yet another HTTP client for Common Lisp")
  5418. (description "Dexador is yet another HTTP client for Common Lisp with
  5419. neat APIs and connection-pooling. It is meant to supersede Drakma.")
  5420. (license license:expat))))
  5421. (define-public cl-dexador
  5422. (package
  5423. (inherit (sbcl-package->cl-source-package sbcl-dexador))
  5424. (arguments
  5425. `(#:phases
  5426. ;; asdf-build-system/source has its own phases and does not inherit
  5427. ;; from asdf-build-system/sbcl phases.
  5428. (modify-phases %standard-phases/source
  5429. ;; Already done in SBCL package.
  5430. (delete 'reset-gzip-timestamps))))))
  5431. (define-public ecl-dexador
  5432. (sbcl-package->ecl-package sbcl-dexador))
  5433. (define-public sbcl-lisp-namespace
  5434. (let ((commit "28107cafe34e4c1c67490fde60c7f92dc610b2e0")
  5435. (revision "1"))
  5436. (package
  5437. (name "sbcl-lisp-namespace")
  5438. (build-system asdf-build-system/sbcl)
  5439. (version (git-version "0.1" revision commit))
  5440. (home-page "https://github.com/guicho271828/lisp-namespace")
  5441. (source
  5442. (origin
  5443. (method git-fetch)
  5444. (uri (git-reference
  5445. (url home-page)
  5446. (commit commit)))
  5447. (file-name (git-file-name name version))
  5448. (sha256
  5449. (base32
  5450. "1jw2wykp06z2afb9nm1lgfzll5cjlj36pnknjx614057zkkxq4iy"))))
  5451. (inputs
  5452. `(("alexandria" ,sbcl-alexandria)))
  5453. (native-inputs
  5454. (list sbcl-fiveam))
  5455. (arguments
  5456. `(#:test-asd-file "lisp-namespace.test.asd"
  5457. ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
  5458. #:tests? #f))
  5459. (synopsis "LISP-N, or extensible namespaces in Common Lisp")
  5460. (description "Common Lisp already has major 2 namespaces, function
  5461. namespace and value namespace (or variable namespace), but there are actually
  5462. more — e.g., class namespace.
  5463. This library offers macros to deal with symbols from any namespace.")
  5464. (license license:llgpl))))
  5465. (define-public cl-lisp-namespace
  5466. (sbcl-package->cl-source-package sbcl-lisp-namespace))
  5467. (define-public ecl-lisp-namespace
  5468. (sbcl-package->ecl-package sbcl-lisp-namespace))
  5469. (define-public sbcl-trivial-cltl2
  5470. (let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
  5471. (revision "2"))
  5472. (package
  5473. (name "sbcl-trivial-cltl2")
  5474. (build-system asdf-build-system/sbcl)
  5475. (version (git-version "0.1.1" revision commit))
  5476. (home-page "https://github.com/Zulu-Inuoe/trivial-cltl2")
  5477. (source
  5478. (origin
  5479. (method git-fetch)
  5480. (uri (git-reference
  5481. (url home-page)
  5482. (commit commit)))
  5483. (file-name (git-file-name name version))
  5484. (sha256
  5485. (base32
  5486. "08cnzb9rnczn4pn2zpf0587ny4wjy1mjndy885fz9pw7xrlx37ip"))))
  5487. (synopsis "Simple CLtL2 compatibility layer for Common Lisp")
  5488. (description "This library is a portable compatibility layer around
  5489. \"Common Lisp the Language, 2nd
  5490. Edition\" (@url{https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html})
  5491. and it exports symbols from implementation-specific packages.")
  5492. (license license:llgpl))))
  5493. (define-public cl-trivial-cltl2
  5494. (sbcl-package->cl-source-package sbcl-trivial-cltl2))
  5495. (define-public ecl-trivial-cltl2
  5496. (sbcl-package->ecl-package sbcl-trivial-cltl2))
  5497. (define-public sbcl-introspect-environment
  5498. (let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
  5499. (revision "1"))
  5500. (package
  5501. (name "sbcl-introspect-environment")
  5502. (build-system asdf-build-system/sbcl)
  5503. (version (git-version "0.1" revision commit))
  5504. (home-page "https://github.com/Bike/introspect-environment")
  5505. (source
  5506. (origin
  5507. (method git-fetch)
  5508. (uri (git-reference
  5509. (url home-page)
  5510. (commit commit)))
  5511. (file-name (git-file-name name version))
  5512. (sha256
  5513. (base32
  5514. "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
  5515. (native-inputs
  5516. (list sbcl-fiveam))
  5517. (synopsis "Common Lisp environment introspection portability layer")
  5518. (description "This library is a small interface to portable but
  5519. nonstandard introspection of Common Lisp environments. It is intended to
  5520. allow a bit more compile-time introspection of environments in Common Lisp.
  5521. Quite a bit of information is available at the time a macro or compiler-macro
  5522. runs; inlining info, type declarations, that sort of thing. This information
  5523. is all standard - any Common Lisp program can @code{(declare (integer x))} and
  5524. such.
  5525. This info ought to be accessible through the standard @code{&environment}
  5526. parameters, but it is not. Several implementations keep the information for
  5527. their own purposes but do not make it available to user programs, because
  5528. there is no standard mechanism to do so.
  5529. This library uses implementation-specific hooks to make information available
  5530. to users. This is currently supported on SBCL, CCL, and CMUCL. Other
  5531. implementations have implementations of the functions that do as much as they
  5532. can and/or provide reasonable defaults.")
  5533. (license license:wtfpl2))))
  5534. (define-public cl-introspect-environment
  5535. (sbcl-package->cl-source-package sbcl-introspect-environment))
  5536. (define-public ecl-introspect-environment
  5537. (sbcl-package->ecl-package sbcl-introspect-environment))
  5538. (define-public sbcl-type-i
  5539. (let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
  5540. (revision "2"))
  5541. (package
  5542. (name "sbcl-type-i")
  5543. (build-system asdf-build-system/sbcl)
  5544. (version (git-version "0.1" revision commit))
  5545. (home-page "https://github.com/guicho271828/type-i")
  5546. (source
  5547. (origin
  5548. (method git-fetch)
  5549. (uri (git-reference
  5550. (url home-page)
  5551. (commit commit)))
  5552. (file-name (git-file-name name version))
  5553. (sha256
  5554. (base32
  5555. "12wsga0pwjkkr176lnjwkmmlm3ccp0n310sjj9h20lk53iyd0z69"))))
  5556. (inputs
  5557. `(("alexandria" ,sbcl-alexandria)
  5558. ("introspect-environment" ,sbcl-introspect-environment)
  5559. ("trivia.trivial" ,sbcl-trivia.trivial)))
  5560. (native-inputs
  5561. (list sbcl-fiveam))
  5562. (arguments
  5563. `(#:test-asd-file "type-i.test.asd"))
  5564. (synopsis "Type inference utility on unary predicates for Common Lisp")
  5565. (description "This library tries to provide a way to detect what kind of
  5566. type the given predicate is trying to check. This is different from inferring
  5567. the return type of a function.")
  5568. (license license:llgpl))))
  5569. (define-public cl-type-i
  5570. (sbcl-package->cl-source-package sbcl-type-i))
  5571. (define-public ecl-type-i
  5572. (package
  5573. (inherit (sbcl-package->ecl-package sbcl-type-i))
  5574. (arguments
  5575. ;; The tests get stuck indefinitly
  5576. '(#:tests? #f))))
  5577. (define-public sbcl-optima
  5578. (let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
  5579. (revision "1"))
  5580. (package
  5581. (name "sbcl-optima")
  5582. (build-system asdf-build-system/sbcl)
  5583. (version (git-version "1.0" revision commit))
  5584. (home-page "https://github.com/m2ym/optima")
  5585. (source
  5586. (origin
  5587. (method git-fetch)
  5588. (uri (git-reference
  5589. (url home-page)
  5590. (commit commit)))
  5591. (file-name (git-file-name name version))
  5592. (sha256
  5593. (base32
  5594. "1yw4ymq7ms89342kkvb3aqxgv0w38m9kd8ikdqxxzyybnkjhndal"))))
  5595. (inputs
  5596. `(("alexandria" ,sbcl-alexandria)
  5597. ("closer-mop" ,sbcl-closer-mop)))
  5598. (native-inputs
  5599. (list sbcl-eos))
  5600. (arguments
  5601. ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
  5602. `(#:tests? #f
  5603. #:test-asd-file "optima.test.asd"))
  5604. (synopsis "Optimized pattern matching library for Common Lisp")
  5605. (description "Optima is a fast pattern matching library which uses
  5606. optimizing techniques widely used in the functional programming world.")
  5607. (license license:expat))))
  5608. (define-public cl-optima
  5609. (sbcl-package->cl-source-package sbcl-optima))
  5610. (define-public ecl-optima
  5611. (sbcl-package->ecl-package sbcl-optima))
  5612. (define-public sbcl-fare-quasiquote
  5613. (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
  5614. (revision "1"))
  5615. (package
  5616. (name "sbcl-fare-quasiquote")
  5617. (build-system asdf-build-system/sbcl)
  5618. (version (git-version "1.0.1" revision commit))
  5619. (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
  5620. (source
  5621. (origin
  5622. (method git-fetch)
  5623. (uri (git-reference
  5624. (url (string-append "https://gitlab.common-lisp.net/frideau/"
  5625. "fare-quasiquote.git"))
  5626. (commit commit)))
  5627. (file-name (git-file-name name version))
  5628. (sha256
  5629. (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
  5630. (inputs
  5631. `(("fare-utils" ,sbcl-fare-utils)
  5632. ("named-readtables" ,sbcl-named-readtables)
  5633. ("optima" ,sbcl-optima)))
  5634. (arguments
  5635. ;; XXX: Circular dependencies: Tests depend on subsystems,
  5636. ;; which depend on the main systems.
  5637. `(#:tests? #f
  5638. #:asd-systems '("fare-quasiquote"
  5639. "fare-quasiquote-extras")
  5640. #:phases
  5641. (modify-phases %standard-phases
  5642. ;; XXX: Require 1.0.0 version of fare-utils, and we package some
  5643. ;; commits after 1.0.0.5, but ASDF fails to read the
  5644. ;; "-REVISION-COMMIT" part generated by Guix.
  5645. (add-after 'unpack 'patch-requirement
  5646. (lambda _
  5647. (substitute* "fare-quasiquote.asd"
  5648. (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
  5649. "\"fare-utils\""))
  5650. (substitute* "fare-quasiquote-optima.asd"
  5651. (("\\(:version \"optima\" \"1\\.0\"\\)")
  5652. "\"optima\""))
  5653. #t)))))
  5654. (synopsis "Pattern-matching friendly implementation of quasiquote")
  5655. (description "The main purpose of this n+2nd reimplementation of
  5656. quasiquote is enable matching of quasiquoted patterns, using Optima or
  5657. Trivia.")
  5658. (license license:expat))))
  5659. (define-public cl-fare-quasiquote
  5660. (sbcl-package->cl-source-package sbcl-fare-quasiquote))
  5661. (define-public ecl-fare-quasiquote
  5662. (sbcl-package->ecl-package sbcl-fare-quasiquote))
  5663. ;;; Split the trivia package in two to work around the circular dependency
  5664. ;;; between guicho271828/trivia and guicho271828/type-i.
  5665. (define-public sbcl-trivia.trivial
  5666. (let ((commit "7286d5d2a4f685f1cac8370816f95276c0851111")
  5667. (revision "3"))
  5668. (package
  5669. (name "sbcl-trivia.trivial")
  5670. (version (git-version "0.0.0" revision commit))
  5671. (source
  5672. (origin
  5673. (method git-fetch)
  5674. (uri (git-reference
  5675. (url "https://github.com/guicho271828/trivia")
  5676. (commit commit)))
  5677. (file-name (git-file-name "trivia" version))
  5678. (sha256
  5679. (base32
  5680. "0ln0sj3jry7kzbmxhnin66kpbqan1wp8wwgdbw4k29afbdblkcca"))))
  5681. (build-system asdf-build-system/sbcl)
  5682. (inputs
  5683. `(("alexandria" ,sbcl-alexandria)
  5684. ("closer-mop" ,sbcl-closer-mop)
  5685. ("lisp-namespace" ,sbcl-lisp-namespace)
  5686. ("trivial-cltl2" ,sbcl-trivial-cltl2)))
  5687. (arguments
  5688. '(#:phases
  5689. (modify-phases %standard-phases
  5690. (add-after 'unpack 'fix-build
  5691. (lambda _
  5692. (for-each delete-file
  5693. '("trivia.balland2006.asd"
  5694. "trivia.ppcre.asd"
  5695. "trivia.quasiquote.asd"
  5696. "trivia.cffi.asd"
  5697. "trivia.asd"
  5698. "trivia.test.asd"))
  5699. #t)))))
  5700. (synopsis "Pattern matching in Common Lisp")
  5701. (description "Trivia is a pattern matching compiler that is compatible
  5702. with Optima, another pattern matching library for Common Lisp. It is meant to
  5703. be faster and more extensible than Optima.")
  5704. (home-page "https://github.com/guicho271828/trivia")
  5705. (license license:llgpl))))
  5706. (define-public cl-trivia.trivial
  5707. (sbcl-package->cl-source-package sbcl-trivia.trivial))
  5708. (define-public ecl-trivia.trivial
  5709. (sbcl-package->ecl-package sbcl-trivia.trivial))
  5710. (define-public sbcl-trivia
  5711. (package
  5712. (inherit sbcl-trivia.trivial)
  5713. (name "sbcl-trivia")
  5714. (native-inputs
  5715. `(("fiveam" ,sbcl-fiveam)
  5716. ("optima" ,sbcl-optima)))
  5717. (inputs
  5718. `(("alexandria" ,sbcl-alexandria)
  5719. ("cffi" ,sbcl-cffi)
  5720. ("cl-ppcre" ,sbcl-cl-ppcre)
  5721. ("fare-quasiquote" ,sbcl-fare-quasiquote)
  5722. ("iterate" ,sbcl-iterate)
  5723. ("trivia.trivial" ,sbcl-trivia.trivial)
  5724. ("type-i" ,sbcl-type-i)))
  5725. (arguments
  5726. '(#:asd-systems '("trivia"
  5727. "trivia.ppcre"
  5728. "trivia.quasiquote"
  5729. "trivia.cffi")
  5730. #:test-asd-file "trivia.test.asd"
  5731. #:phases
  5732. (modify-phases %standard-phases
  5733. (add-after 'unpack 'fix-build
  5734. (lambda _
  5735. (for-each delete-file
  5736. '("trivia.level0.asd"
  5737. "trivia.level1.asd"
  5738. "trivia.level2.asd"
  5739. "trivia.trivial.asd"))
  5740. #t)))))))
  5741. (define-public cl-trivia
  5742. (sbcl-package->cl-source-package sbcl-trivia))
  5743. (define-public ecl-trivia
  5744. (sbcl-package->ecl-package sbcl-trivia))
  5745. (define-public sbcl-mk-string-metrics
  5746. (package
  5747. (name "sbcl-mk-string-metrics")
  5748. (version "0.1.2")
  5749. (home-page "https://github.com/cbaggers/mk-string-metrics/")
  5750. (source (origin
  5751. (method git-fetch)
  5752. (uri (git-reference
  5753. (url home-page)
  5754. (commit version)))
  5755. (sha256
  5756. (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6"))
  5757. (file-name (git-file-name name version))))
  5758. (build-system asdf-build-system/sbcl)
  5759. (synopsis "Calculate various string metrics efficiently in Common Lisp")
  5760. (description "This library implements efficient algorithms that calculate
  5761. various string metrics in Common Lisp:
  5762. @itemize
  5763. @item Damerau-Levenshtein distance
  5764. @item Hamming distance
  5765. @item Jaccard similarity coefficient
  5766. @item Jaro distance
  5767. @item Jaro-Winkler distance
  5768. @item Levenshtein distance
  5769. @item Normalized Damerau-Levenshtein distance
  5770. @item Normalized Levenshtein distance
  5771. @item Overlap coefficient
  5772. @end itemize\n")
  5773. (license license:x11)))
  5774. (define-public cl-mk-string-metrics
  5775. (sbcl-package->cl-source-package sbcl-mk-string-metrics))
  5776. (define-public ecl-mk-string-metrics
  5777. (sbcl-package->ecl-package sbcl-mk-string-metrics))
  5778. (define-public sbcl-cl-str
  5779. (package
  5780. (name "sbcl-cl-str")
  5781. (version "0.19")
  5782. (home-page "https://github.com/vindarel/cl-str")
  5783. (source (origin
  5784. (method git-fetch)
  5785. (uri (git-reference
  5786. (url home-page)
  5787. (commit version)))
  5788. (sha256
  5789. (base32 "1jyza2jhn7w6fl4w87pv0m87z5ia48m6dqw12k0mdh7l3mgjq839"))
  5790. (file-name (git-file-name name version))))
  5791. (build-system asdf-build-system/sbcl)
  5792. (inputs
  5793. `(("cl-ppcre" ,sbcl-cl-ppcre)
  5794. ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
  5795. ("cl-change-case" ,sbcl-cl-change-case)))
  5796. (native-inputs
  5797. (list sbcl-prove))
  5798. (arguments
  5799. `(#:asd-systems '("str")
  5800. #:test-asd-file "str.test.asd"))
  5801. (synopsis "Modern, consistent and terse Common Lisp string manipulation library")
  5802. (description "A modern and consistent Common Lisp string manipulation
  5803. library that focuses on modernity, simplicity and discoverability:
  5804. @code{(str:trim s)} instead of @code{(string-trim '(#\\Space ...) s)}), or
  5805. @code{str:concat strings} instead of an unusual format construct; one
  5806. discoverable library instead of many; consistency and composability, where
  5807. @code{s} is always the last argument, which makes it easier to feed pipes and
  5808. arrows.")
  5809. (license license:expat)))
  5810. (define-public cl-str
  5811. (sbcl-package->cl-source-package sbcl-cl-str))
  5812. (define-public ecl-cl-str
  5813. (sbcl-package->ecl-package sbcl-cl-str))
  5814. (define-public sbcl-cl-xmlspam
  5815. (let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
  5816. (package
  5817. (name "sbcl-cl-xmlspam")
  5818. (build-system asdf-build-system/sbcl)
  5819. (version (git-version "0.0.0" "1" commit))
  5820. (home-page "https://github.com/rogpeppe/cl-xmlspam")
  5821. (source
  5822. (origin
  5823. (method git-fetch)
  5824. (uri (git-reference
  5825. (url home-page)
  5826. (commit commit)))
  5827. (file-name (string-append name "-" version))
  5828. (sha256
  5829. (base32
  5830. "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
  5831. (inputs
  5832. (list sbcl-cxml sbcl-cl-ppcre))
  5833. (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
  5834. (description "CXML does an excellent job at parsing XML elements, but what
  5835. do you do when you have a XML file that's larger than you want to fit in
  5836. memory, and you want to extract some information from it? Writing code to deal
  5837. with SAX events, or even using Klacks, quickly becomes tedious.
  5838. @code{cl-xmlspam} (for XML Stream PAttern Matcher) is designed to make it easy
  5839. to write code that mirrors the structure of the XML that it's parsing. It
  5840. also makes it easy to shift paradigms when necessary - the usual Lisp control
  5841. constructs can be used interchangeably with pattern matching, and the full
  5842. power of CXML is available when necessary.")
  5843. (license license:bsd-3))))
  5844. (define-public cl-xmlspam
  5845. (sbcl-package->cl-source-package sbcl-cl-xmlspam))
  5846. (define-public ecl-cl-xmlspam
  5847. (sbcl-package->ecl-package sbcl-cl-xmlspam))
  5848. (define-public sbcl-dbus
  5849. (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
  5850. (revision "1"))
  5851. (package
  5852. (name "sbcl-dbus")
  5853. (version (git-version "20190408" revision commit))
  5854. (home-page "https://github.com/death/dbus")
  5855. (source
  5856. (origin
  5857. (method git-fetch)
  5858. (uri (git-reference
  5859. (url home-page)
  5860. (commit commit)))
  5861. (file-name (git-file-name name version))
  5862. (sha256
  5863. (base32
  5864. "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
  5865. (build-system asdf-build-system/sbcl)
  5866. (inputs
  5867. (list sbcl-alexandria
  5868. sbcl-trivial-garbage
  5869. sbcl-babel
  5870. sbcl-iolib
  5871. sbcl-ieee-floats
  5872. sbcl-flexi-streams
  5873. sbcl-cl-xmlspam
  5874. sbcl-ironclad))
  5875. (synopsis "D-Bus client library for Common Lisp")
  5876. (description "This is a Common Lisp library that publishes D-Bus
  5877. objects as well as send and notify other objects connected to a bus.")
  5878. (license license:bsd-2))))
  5879. (define-public cl-dbus
  5880. (sbcl-package->cl-source-package sbcl-dbus))
  5881. (define-public ecl-dbus
  5882. (sbcl-package->ecl-package sbcl-dbus))
  5883. (define-public sbcl-cl-hooks
  5884. (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
  5885. (revision "1"))
  5886. (package
  5887. (name "sbcl-cl-hooks")
  5888. (build-system asdf-build-system/sbcl)
  5889. (version (git-version "0.2.1" revision commit))
  5890. (home-page "https://github.com/scymtym/architecture.hooks")
  5891. (source
  5892. (origin
  5893. (method git-fetch)
  5894. (uri (git-reference
  5895. (url home-page)
  5896. (commit commit)))
  5897. (file-name (git-file-name name version))
  5898. (sha256
  5899. (base32
  5900. "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
  5901. (inputs
  5902. (list sbcl-alexandria sbcl-let-plus sbcl-trivial-garbage
  5903. sbcl-closer-mop))
  5904. (native-inputs
  5905. (list sbcl-fiveam))
  5906. (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
  5907. (description "A hook, in the present context, is a certain kind of
  5908. extension point in a program that allows interleaving the execution of
  5909. arbitrary code with the execution of a the program without introducing any
  5910. coupling between the two. Hooks are used extensively in the extensible editor
  5911. Emacs.
  5912. In the Common LISP Object System (CLOS), a similar kind of extensibility is
  5913. possible using the flexible multi-method dispatch mechanism. It may even seem
  5914. that the concept of hooks does not provide any benefits over the possibilities
  5915. of CLOS. However, there are some differences:
  5916. @itemize
  5917. @item There can be only one method for each combination of specializers and
  5918. qualifiers. As a result this kind of extension point cannot be used by
  5919. multiple extensions independently.
  5920. @item Removing code previously attached via a @code{:before}, @code{:after} or
  5921. @code{:around} method can be cumbersome.
  5922. @item There could be other or even multiple extension points besides @code{:before}
  5923. and @code{:after} in a single method.
  5924. @item Attaching codes to individual objects using eql specializers can be
  5925. cumbersome.
  5926. @item Introspection of code attached a particular extension point is
  5927. cumbersome since this requires enumerating and inspecting the methods of a
  5928. generic function.
  5929. @end itemize
  5930. This library tries to complement some of these weaknesses of method-based
  5931. extension-points via the concept of hooks.")
  5932. (license license:llgpl))))
  5933. (define-public cl-hooks
  5934. (sbcl-package->cl-source-package sbcl-cl-hooks))
  5935. (define-public ecl-cl-hooks
  5936. (sbcl-package->ecl-package sbcl-cl-hooks))
  5937. (define-public sbcl-cl-autowrap
  5938. (let ((revision "2")
  5939. (commit "a5d71ebd7c21b87f449db1e16ab815750d7c0ea4"))
  5940. ;; no taged branches
  5941. (package
  5942. (name "sbcl-cl-autowrap")
  5943. (version (git-version "1.0" revision commit))
  5944. (source
  5945. (origin
  5946. (method git-fetch)
  5947. (uri (git-reference
  5948. (url "https://github.com/rpav/cl-autowrap")
  5949. (commit commit)))
  5950. (file-name (git-file-name "cl-autowrap" version))
  5951. (sha256
  5952. (base32 "0795c817m1c41cz3ywzzg83z4pgkxdg6si553pay9mdgjvmrwmaw"))))
  5953. (build-system asdf-build-system/sbcl)
  5954. (arguments
  5955. `(#:asd-systems '("cl-plus-c" "cl-autowrap")))
  5956. (inputs
  5957. `(("alexandria" ,sbcl-alexandria)
  5958. ("cffi" ,sbcl-cffi)
  5959. ("cl-json" ,sbcl-cl-json)
  5960. ("cl-ppcre" ,sbcl-cl-ppcre)
  5961. ("defpackage-plus" ,sbcl-defpackage-plus)
  5962. ("trivial-features" ,sbcl-trivial-features)))
  5963. (home-page "https://github.com/rpav/cl-autowrap")
  5964. (synopsis "FFI wrapper generator for Common Lisp")
  5965. (description "This is a c2ffi-based wrapper generator for Common Lisp.")
  5966. (license license:bsd-2))))
  5967. (define-public cl-autowrap
  5968. (sbcl-package->cl-source-package sbcl-cl-autowrap))
  5969. (define-public ecl-cl-autowrap
  5970. (sbcl-package->ecl-package sbcl-cl-autowrap))
  5971. (define-public sbcl-s-sysdeps
  5972. ;; No release since 2013.
  5973. (let ((commit "9aa23bbdceb24bcdbe0e7c39fa1901858f823106")
  5974. (revision "2"))
  5975. (package
  5976. (name "sbcl-s-sysdeps")
  5977. (build-system asdf-build-system/sbcl)
  5978. (version (git-version "1" revision commit))
  5979. (home-page "https://github.com/svenvc/s-sysdeps")
  5980. (source
  5981. (origin
  5982. (method git-fetch)
  5983. (uri (git-reference
  5984. (url home-page)
  5985. (commit commit)))
  5986. (file-name (git-file-name name version))
  5987. (sha256
  5988. (base32
  5989. "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
  5990. (inputs
  5991. (list sbcl-bordeaux-threads sbcl-usocket))
  5992. (synopsis "Common Lisp abstraction layer over platform dependent functionality")
  5993. (description "@code{s-sysdeps} is an abstraction layer over platform
  5994. dependent functionality. This simple package is used as a building block in a
  5995. number of other open source projects.
  5996. @code{s-sysdeps} abstracts:
  5997. @itemize
  5998. @item managing processes,
  5999. @item implementing a standard TCP/IP server,
  6000. @item opening a client TCP/IP socket stream,
  6001. @item working with process locks.
  6002. @end itemize\n")
  6003. (license license:llgpl))))
  6004. (define-public cl-s-sysdeps
  6005. (sbcl-package->cl-source-package sbcl-s-sysdeps))
  6006. (define-public ecl-s-sysdeps
  6007. (sbcl-package->ecl-package sbcl-s-sysdeps))
  6008. (define-public sbcl-cl-prevalence
  6009. (let ((commit "5a76be036092ed6c18cb695a9e03bce87e21b840")
  6010. (revision "4"))
  6011. (package
  6012. (name "sbcl-cl-prevalence")
  6013. (build-system asdf-build-system/sbcl)
  6014. (version (git-version "5" revision commit))
  6015. (home-page "https://github.com/40ants/cl-prevalence")
  6016. (source
  6017. (origin
  6018. (method git-fetch)
  6019. (uri (git-reference
  6020. (url home-page)
  6021. (commit commit)))
  6022. (file-name (git-file-name name version))
  6023. (sha256
  6024. (base32
  6025. "050h6hwv8f16b5v6fzba8zmih92hgaaq27i2x9wv1iib41gbia3r"))))
  6026. (inputs
  6027. (list sbcl-s-sysdeps sbcl-s-xml))
  6028. (native-inputs
  6029. (list sbcl-fiveam))
  6030. (synopsis "Implementation of object prevalence for Common Lisp")
  6031. (description "This Common Lisp library implements object prevalence (see
  6032. @url{https://en.wikipedia.org/wiki/System_prevalence}). It allows
  6033. for (de)serializing to and from s-exps as well as XML. Serialization of arbitrary
  6034. classes and cyclic data structures are supported.")
  6035. (license license:llgpl))))
  6036. (define-public cl-prevalence
  6037. (sbcl-package->cl-source-package sbcl-cl-prevalence))
  6038. (define-public ecl-cl-prevalence
  6039. (sbcl-package->ecl-package sbcl-cl-prevalence))
  6040. (define-public sbcl-series
  6041. (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
  6042. (revision "1"))
  6043. (package
  6044. (name "sbcl-series")
  6045. (version (git-version "2.2.11" revision commit))
  6046. (source
  6047. (origin
  6048. (method git-fetch)
  6049. (uri (git-reference
  6050. (url "git://git.code.sf.net/p/series/series")
  6051. (commit commit)))
  6052. (file-name (git-file-name name version))
  6053. (sha256
  6054. (base32
  6055. "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
  6056. (build-system asdf-build-system/sbcl)
  6057. (arguments
  6058. ;; Disable the tests, they are apparently buggy and I didn't find
  6059. ;; a simple way to make them run and pass.
  6060. '(#:tests? #f))
  6061. (synopsis "Series data structure for Common Lisp")
  6062. (description
  6063. "This Common Lisp library provides a series data structure much like
  6064. a sequence, with similar kinds of operations. The difference is that in many
  6065. situations, operations on series may be composed functionally and yet execute
  6066. iteratively, without the need to construct intermediate series values
  6067. explicitly. In this manner, series provide both the clarity of a functional
  6068. programming style and the efficiency of an iterative programming style.")
  6069. (home-page "http://series.sourceforge.net/")
  6070. (license license:expat))))
  6071. (define-public cl-series
  6072. (sbcl-package->cl-source-package sbcl-series))
  6073. (define-public ecl-series
  6074. (sbcl-package->ecl-package sbcl-series))
  6075. (define-public sbcl-periods
  6076. (let ((commit "60383dcef88a1ac11f82804ae7a33c361dcd2949")
  6077. (revision "2"))
  6078. (package
  6079. (name "sbcl-periods")
  6080. (version (git-version "0.0.2" revision commit))
  6081. (source
  6082. (origin
  6083. (method git-fetch)
  6084. (uri (git-reference
  6085. (url "https://github.com/jwiegley/periods")
  6086. (commit commit)))
  6087. (file-name (git-file-name name version))
  6088. (sha256
  6089. (base32
  6090. "1ym2j4an9ig2hl210jg91gpf7xfnp6mlhkw3n9kkdnwiji3ipqlk"))))
  6091. (build-system asdf-build-system/sbcl)
  6092. (inputs
  6093. `(("local-time" ,sbcl-local-time)
  6094. ("series" ,sbcl-series)))
  6095. (arguments
  6096. '(#:asd-systems '("periods"
  6097. "periods-series")))
  6098. (synopsis "Common Lisp library for manipulating date/time objects")
  6099. (description
  6100. "Periods is a Common Lisp library providing a set of utilities for
  6101. manipulating times, distances between times, and both contiguous and
  6102. discontiguous ranges of time.")
  6103. (home-page "https://github.com/jwiegley/periods")
  6104. (license license:bsd-3))))
  6105. (define-public cl-periods
  6106. (sbcl-package->cl-source-package sbcl-periods))
  6107. (define-public ecl-periods
  6108. (sbcl-package->ecl-package sbcl-periods))
  6109. (define-public sbcl-metatilities-base
  6110. (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
  6111. (revision "1"))
  6112. (package
  6113. (name "sbcl-metatilities-base")
  6114. (version (git-version "0.6.6" revision commit))
  6115. (source
  6116. (origin
  6117. (method git-fetch)
  6118. (uri (git-reference
  6119. (url "https://github.com/gwkkwg/metatilities-base")
  6120. (commit commit)))
  6121. (file-name (git-file-name name version))
  6122. (sha256
  6123. (base32
  6124. "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
  6125. (build-system asdf-build-system/sbcl)
  6126. (native-inputs
  6127. (list sbcl-lift))
  6128. (synopsis "Core of the metatilities Common Lisp library")
  6129. (description
  6130. "Metatilities-base is the core of the metatilities Common Lisp library
  6131. which implements a set of utilities.")
  6132. (home-page "https://common-lisp.net/project/metatilities-base/")
  6133. (license license:expat))))
  6134. (define-public cl-metatilities-base
  6135. (sbcl-package->cl-source-package sbcl-metatilities-base))
  6136. (define-public ecl-metatilities-base
  6137. (sbcl-package->ecl-package sbcl-metatilities-base))
  6138. (define-public sbcl-cl-containers
  6139. (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
  6140. (revision "3"))
  6141. (package
  6142. (name "sbcl-cl-containers")
  6143. (version (git-version "0.12.1" revision commit))
  6144. (source
  6145. (origin
  6146. (method git-fetch)
  6147. (uri (git-reference
  6148. (url "https://github.com/gwkkwg/cl-containers")
  6149. (commit commit)))
  6150. (file-name (git-file-name name version))
  6151. (sha256
  6152. (base32
  6153. "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
  6154. (build-system asdf-build-system/sbcl)
  6155. (native-inputs
  6156. (list sbcl-lift))
  6157. (inputs
  6158. `(("metatilities-base" ,sbcl-metatilities-base)))
  6159. (arguments
  6160. '(#:asd-files '("cl-containers.asd")
  6161. #:phases
  6162. (modify-phases %standard-phases
  6163. (add-after 'unpack 'relax-version-checks
  6164. (lambda _
  6165. (substitute* "cl-containers.asd"
  6166. (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
  6167. "\"metatilities-base\""))
  6168. (substitute* "cl-containers-test.asd"
  6169. (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
  6170. "\"lift\""))
  6171. #t)))))
  6172. (synopsis "Container library for Common Lisp")
  6173. (description
  6174. "Common Lisp ships with a set of powerful built in data structures
  6175. including the venerable list, full featured arrays, and hash-tables.
  6176. CL-containers enhances and builds on these structures by adding containers
  6177. that are not available in native Lisp (for example: binary search trees,
  6178. red-black trees, sparse arrays and so on), and by providing a standard
  6179. interface so that they are simpler to use and so that changing design
  6180. decisions becomes significantly easier.")
  6181. (home-page "https://common-lisp.net/project/cl-containers/")
  6182. (license license:expat))))
  6183. (define-public cl-containers
  6184. (sbcl-package->cl-source-package sbcl-cl-containers))
  6185. (define-public ecl-cl-containers
  6186. (sbcl-package->ecl-package sbcl-cl-containers))
  6187. (define-public sbcl-cambl
  6188. (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
  6189. (revision "1"))
  6190. (package
  6191. (name "sbcl-cambl")
  6192. (version (git-version "4.0.0" revision commit))
  6193. (source
  6194. (origin
  6195. (method git-fetch)
  6196. (uri (git-reference
  6197. (url "https://github.com/jwiegley/cambl")
  6198. (commit commit)))
  6199. (file-name (git-file-name "cambl" version))
  6200. (sha256
  6201. (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
  6202. (build-system asdf-build-system/sbcl)
  6203. (native-inputs
  6204. (list sbcl-xlunit))
  6205. (inputs
  6206. `(("alexandria" ,sbcl-alexandria)
  6207. ("cl-containers" ,sbcl-cl-containers)
  6208. ("local-time" ,sbcl-local-time)
  6209. ("periods" ,sbcl-periods)))
  6210. (arguments
  6211. '(#:asd-files '("fprog.asd"
  6212. "cambl.asd")))
  6213. (synopsis "Commoditized amounts and balances for Common Lisp")
  6214. (description
  6215. "CAMBL is a Common Lisp library providing a convenient facility for
  6216. working with commoditized values. It does not allow compound units (and so is
  6217. not suited for scientific operations) but does work rather nicely for the
  6218. purpose of financial calculations.")
  6219. (home-page "https://github.com/jwiegley/cambl")
  6220. (license license:bsd-3))))
  6221. (define-public cl-cambl
  6222. (sbcl-package->cl-source-package sbcl-cambl))
  6223. (define-public ecl-cambl
  6224. (sbcl-package->ecl-package sbcl-cambl))
  6225. (define-public sbcl-cl-ledger
  6226. (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
  6227. (revision "1"))
  6228. (package
  6229. (name "sbcl-cl-ledger")
  6230. (version (git-version "4.0.0" revision commit))
  6231. (source
  6232. (origin
  6233. (method git-fetch)
  6234. (uri (git-reference
  6235. (url "https://github.com/ledger/cl-ledger")
  6236. (commit commit)))
  6237. (file-name (git-file-name name version))
  6238. (sha256
  6239. (base32
  6240. "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
  6241. (build-system asdf-build-system/sbcl)
  6242. (inputs
  6243. `(("cambl" ,sbcl-cambl)
  6244. ("cl-ppcre" ,sbcl-cl-ppcre)
  6245. ("local-time" ,sbcl-local-time)
  6246. ("periods" ,sbcl-periods)))
  6247. (arguments
  6248. '(#:phases
  6249. (modify-phases %standard-phases
  6250. (add-after 'unpack 'fix-system-definition
  6251. (lambda _
  6252. (substitute* "cl-ledger.asd"
  6253. ((" :build-operation program-op") "")
  6254. ((" :build-pathname \"cl-ledger\"") "")
  6255. ((" :entry-point \"ledger::main\"") ""))
  6256. #t)))))
  6257. (synopsis "Common Lisp port of the Ledger accounting system")
  6258. (description
  6259. "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
  6260. system.")
  6261. (home-page "https://github.com/ledger/cl-ledger")
  6262. (license license:bsd-3))))
  6263. (define-public cl-ledger
  6264. (sbcl-package->cl-source-package sbcl-cl-ledger))
  6265. (define-public ecl-cl-ledger
  6266. (sbcl-package->ecl-package sbcl-cl-ledger))
  6267. (define-public sbcl-bst
  6268. (let ((commit "8545aed0d504df2829ad139566feeabe22305388")
  6269. (revision "0"))
  6270. (package
  6271. (name "sbcl-bst")
  6272. (version (git-version "2.0" revision commit))
  6273. (source
  6274. (origin
  6275. (method git-fetch)
  6276. (uri (git-reference
  6277. (url "https://github.com/glv2/bst")
  6278. (commit commit)))
  6279. (file-name (git-file-name name version))
  6280. (sha256
  6281. (base32 "18ig7rvxcra69437g0i8sxyv7c5dg26jqnx1rc2f9pxmihdprgk8"))))
  6282. (build-system asdf-build-system/sbcl)
  6283. (native-inputs
  6284. (list sbcl-alexandria sbcl-fiveam))
  6285. (synopsis "Binary search tree for Common Lisp")
  6286. (description
  6287. "BST is a Common Lisp library for working with binary search trees that
  6288. can contain any kind of values.")
  6289. (home-page "https://github.com/glv2/bst")
  6290. (license license:gpl3))))
  6291. (define-public cl-bst
  6292. (sbcl-package->cl-source-package sbcl-bst))
  6293. (define-public ecl-bst
  6294. (sbcl-package->ecl-package sbcl-bst))
  6295. (define-public sbcl-cl-octet-streams
  6296. (package
  6297. (name "sbcl-cl-octet-streams")
  6298. (version "1.2")
  6299. (source
  6300. (origin
  6301. (method git-fetch)
  6302. (uri (git-reference
  6303. (url "https://github.com/glv2/cl-octet-streams")
  6304. (commit (string-append "v" version))))
  6305. (file-name (git-file-name name version))
  6306. (sha256
  6307. (base32 "1hffh98bv4w5yrchagzwqrc43d2p473pvw7ka4kyyvhrr52dk2f8"))))
  6308. (build-system asdf-build-system/sbcl)
  6309. (native-inputs
  6310. (list sbcl-fiveam))
  6311. (inputs
  6312. (list sbcl-trivial-gray-streams))
  6313. (synopsis "In-memory octet streams for Common Lisp")
  6314. (description
  6315. "CL-octet-streams is a library implementing in-memory octet
  6316. streams for Common Lisp. It was inspired by the trivial-octet-streams and
  6317. cl-plumbing libraries.")
  6318. (home-page "https://github.com/glv2/cl-octet-streams")
  6319. (license license:gpl3+)))
  6320. (define-public cl-octet-streams
  6321. (sbcl-package->cl-source-package sbcl-cl-octet-streams))
  6322. (define-public ecl-cl-octet-streams
  6323. (sbcl-package->ecl-package sbcl-cl-octet-streams))
  6324. (define-public sbcl-lzlib
  6325. (let ((commit "cad10f5becbcfebb44b9d311a257563778803452")
  6326. (revision "2"))
  6327. (package
  6328. (name "sbcl-lzlib")
  6329. (version (git-version "1.1" revision commit))
  6330. (source
  6331. (origin
  6332. (method git-fetch)
  6333. (uri (git-reference
  6334. (url "https://github.com/glv2/cl-lzlib")
  6335. (commit commit)))
  6336. (file-name (git-file-name name version))
  6337. (sha256
  6338. (base32 "09lp7li35h4jkls0448fj1sh6pjslr1w7ranbc4szjr8g0c2bdry"))))
  6339. (build-system asdf-build-system/sbcl)
  6340. (native-inputs
  6341. (list sbcl-fiveam))
  6342. (inputs
  6343. `(("cffi" ,sbcl-cffi)
  6344. ("cl-octet-streams" ,sbcl-cl-octet-streams)
  6345. ("lparallel" ,sbcl-lparallel)
  6346. ("lzlib" ,lzlib)))
  6347. (arguments
  6348. '(#:phases
  6349. (modify-phases %standard-phases
  6350. (add-after 'unpack 'fix-paths
  6351. (lambda* (#:key inputs #:allow-other-keys)
  6352. (substitute* "src/lzlib.lisp"
  6353. (("liblz\\.so")
  6354. (search-input-file inputs "/lib/liblz.so")))
  6355. #t)))))
  6356. (synopsis "Common Lisp library for lzip (de)compression")
  6357. (description
  6358. "This Common Lisp library provides functions for lzip (LZMA)
  6359. compression/decompression using bindings to the lzlib C library.")
  6360. (home-page "https://github.com/glv2/cl-lzlib")
  6361. (license license:gpl3+))))
  6362. (define-public cl-lzlib
  6363. (sbcl-package->cl-source-package sbcl-lzlib))
  6364. (define-public ecl-lzlib
  6365. (sbcl-package->ecl-package sbcl-lzlib))
  6366. (define-public sbcl-chanl
  6367. (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
  6368. (revision "1"))
  6369. (package
  6370. (name "sbcl-chanl")
  6371. (version (git-version "0.4.1" revision commit))
  6372. (source
  6373. (origin
  6374. (method git-fetch)
  6375. (uri (git-reference
  6376. (url "https://github.com/zkat/chanl")
  6377. (commit commit)))
  6378. (file-name (git-file-name name version))
  6379. (sha256
  6380. (base32
  6381. "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
  6382. (build-system asdf-build-system/sbcl)
  6383. (native-inputs
  6384. (list sbcl-fiveam))
  6385. (inputs
  6386. (list sbcl-bordeaux-threads))
  6387. (synopsis "Portable channel-based concurrency for Common Lisp")
  6388. (description "Common Lisp library for channel-based concurrency. In
  6389. a nutshell, you create various threads sequentially executing tasks you need
  6390. done, and use channel objects to communicate and synchronize the state of these
  6391. threads.")
  6392. (home-page "https://github.com/zkat/chanl")
  6393. (license (list license:expat license:bsd-3)))))
  6394. (define-public cl-chanl
  6395. (sbcl-package->cl-source-package sbcl-chanl))
  6396. (define-public ecl-chanl
  6397. (sbcl-package->ecl-package sbcl-chanl))
  6398. (define-public sbcl-cl-store
  6399. (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
  6400. (revision "1"))
  6401. (package
  6402. (name "sbcl-cl-store")
  6403. (version (git-version "0.8.11" revision commit))
  6404. (source
  6405. (origin
  6406. (method git-fetch)
  6407. (uri (git-reference
  6408. (url "https://github.com/skypher/cl-store")
  6409. (commit commit)))
  6410. (file-name (git-file-name name version))
  6411. (sha256
  6412. (base32
  6413. "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
  6414. (build-system asdf-build-system/sbcl)
  6415. (native-inputs
  6416. (list sbcl-rt))
  6417. (synopsis "Common Lisp library to serialize data")
  6418. (description
  6419. "CL-STORE is a portable serialization package which should give you the
  6420. ability to store all Common Lisp data types into streams.")
  6421. (home-page "https://www.common-lisp.net/project/cl-store/")
  6422. (license license:expat))))
  6423. (define-public cl-store
  6424. (sbcl-package->cl-source-package sbcl-cl-store))
  6425. (define-public ecl-cl-store
  6426. (sbcl-package->ecl-package sbcl-cl-store))
  6427. (define-public sbcl-specialization-store
  6428. (let ((commit "8d39a866a6f24986aad3cc52349e9cb2653496f3")
  6429. (revision "1"))
  6430. (package
  6431. (name "sbcl-specialization-store")
  6432. (version (git-version "0.0.5" revision commit))
  6433. (source
  6434. (origin
  6435. (method git-fetch)
  6436. (uri (git-reference
  6437. (url "https://github.com/markcox80/specialization-store")
  6438. (commit commit)))
  6439. (file-name (git-file-name "specialization-store" version))
  6440. (sha256
  6441. (base32 "0r0bgb46q4gy72l78s7djkxq8ibb4bb3yh9brsry5lih7br8lhi0"))))
  6442. (build-system asdf-build-system/sbcl)
  6443. (native-inputs
  6444. (list sbcl-fiveam))
  6445. (inputs
  6446. (list sbcl-alexandria sbcl-introspect-environment))
  6447. (home-page "https://github.com/markcox80/specialization-store")
  6448. (synopsis "Different type of generic function for Common Lisp")
  6449. (description
  6450. "SPECIALIZATION-STORE system provides a new kind of function, called
  6451. a store function, whose behavior depends on the types of objects passed to the
  6452. function.")
  6453. (license license:bsd-2))))
  6454. (define-public ecl-specialization-store
  6455. (package
  6456. (inherit (sbcl-package->ecl-package sbcl-specialization-store))
  6457. (arguments
  6458. ;; TODO: Find why the tests get stuck forever; disable them for now.
  6459. `(#:tests? #f))))
  6460. (define-public cl-specialization-store
  6461. (sbcl-package->cl-source-package sbcl-specialization-store))
  6462. (define-public sbcl-cl-gobject-introspection
  6463. (let ((commit "d0136c8d9ade2560123af1fc55bbf70d2e3db539")
  6464. (revision "1"))
  6465. (package
  6466. (name "sbcl-cl-gobject-introspection")
  6467. (version (git-version "0.3" revision commit))
  6468. (home-page "https://github.com/andy128k/cl-gobject-introspection")
  6469. (source
  6470. (origin
  6471. (method git-fetch)
  6472. (uri (git-reference
  6473. (url home-page)
  6474. (commit commit)))
  6475. (file-name (git-file-name name version))
  6476. (sha256
  6477. (base32
  6478. "0dz0r73pq7yhz2iq2jnkq977awx2zws2qfxdcy33329sys1ii32p"))))
  6479. (build-system asdf-build-system/sbcl)
  6480. (inputs
  6481. `(("alexandria" ,sbcl-alexandria)
  6482. ("cffi" ,sbcl-cffi)
  6483. ("iterate" ,sbcl-iterate)
  6484. ("trivial-garbage" ,sbcl-trivial-garbage)
  6485. ("glib" ,glib)
  6486. ("gobject-introspection" ,gobject-introspection)))
  6487. (native-inputs
  6488. (list sbcl-fiveam))
  6489. (arguments
  6490. '(#:phases
  6491. (modify-phases %standard-phases
  6492. (add-after 'unpack 'fix-paths
  6493. (lambda* (#:key inputs #:allow-other-keys)
  6494. (substitute* "src/init.lisp"
  6495. (("libgobject-2\\.0\\.so")
  6496. (search-input-file inputs "/lib/libgobject-2.0.so"))
  6497. (("libgirepository-1\\.0\\.so")
  6498. (search-input-file inputs
  6499. "/lib/libgirepository-1.0.so"))))))))
  6500. (synopsis "Common Lisp bindings to GObject Introspection")
  6501. (description
  6502. "This library is a bridge between Common Lisp and GObject
  6503. Introspection, which enables Common Lisp programs to access the full interface
  6504. of C+GObject libraries without the need of writing dedicated bindings.")
  6505. (license (list license:bsd-3
  6506. ;; Tests are under a different license.
  6507. license:llgpl)))))
  6508. (define-public cl-gobject-introspection
  6509. (sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
  6510. (define-public ecl-cl-gobject-introspection
  6511. (sbcl-package->ecl-package sbcl-cl-gobject-introspection))
  6512. (define-public sbcl-cl-slug
  6513. (let ((commit "ffb229d10f0d3f7f54e706791725225e200bf749")
  6514. (revision "1"))
  6515. (package
  6516. (name "sbcl-cl-slug")
  6517. (version (git-version "0.4.1" revision commit))
  6518. (source
  6519. (origin
  6520. (method git-fetch)
  6521. (uri (git-reference
  6522. (url "https://github.com/EuAndreh/cl-slug")
  6523. (commit commit)))
  6524. (file-name (git-file-name "cl-slug" version))
  6525. (sha256
  6526. (base32 "1asdq6xllmsvfw5fky9wblqcx9isac9jrrlkfl7vyxcq1wxrnflx"))))
  6527. (build-system asdf-build-system/sbcl)
  6528. (arguments
  6529. `(#:asd-files '("cl-slug-test.asd" "cl-slug.asd")
  6530. #:asd-systems '("cl-slug-test" "cl-slug")))
  6531. (native-inputs
  6532. (list sbcl-prove))
  6533. (inputs
  6534. `(("ppcre" ,sbcl-cl-ppcre)))
  6535. (home-page "https://github.com/EuAndreh/cl-slug")
  6536. (synopsis "Multi-language slug formatter")
  6537. (description
  6538. "This is a small Common Lisp library to make slugs, mainly for URIs,
  6539. from English and beyond.")
  6540. (license license:llgpl))))
  6541. (define-public ecl-cl-slug
  6542. (sbcl-package->ecl-package sbcl-cl-slug))
  6543. (define-public cl-slug
  6544. (sbcl-package->cl-source-package sbcl-cl-slug))
  6545. (define-public sbcl-string-case
  6546. (let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
  6547. (revision "0"))
  6548. (package
  6549. (name "sbcl-string-case")
  6550. (version (git-version "0.0.2" revision commit))
  6551. (home-page "https://github.com/pkhuong/string-case")
  6552. (source
  6553. (origin
  6554. (method git-fetch)
  6555. (uri (git-reference
  6556. (url home-page)
  6557. (commit commit)))
  6558. (file-name (git-file-name name version))
  6559. (sha256
  6560. (base32
  6561. "1n5i3yh0h5s636rcnwn7jwqy3rjflikra04lymimhpcshhjsk0md"))))
  6562. (build-system asdf-build-system/sbcl)
  6563. (synopsis "Efficient string= case in Common Lisp")
  6564. (description
  6565. "@code{string-case} is a Common Lisp macro that generates specialised decision
  6566. trees to dispatch on string equality.")
  6567. (license license:bsd-3))))
  6568. (define-public cl-string-case
  6569. (sbcl-package->cl-source-package sbcl-string-case))
  6570. (define-public ecl-string-case
  6571. (sbcl-package->ecl-package sbcl-string-case))
  6572. (define-public sbcl-garbage-pools
  6573. (let ((commit "9a7cb7f48b04197c0495df3b6d2e8395ad13f790")
  6574. (revision "1"))
  6575. (package
  6576. (name "sbcl-garbage-pools")
  6577. (version (git-version "0.1.2" revision commit))
  6578. (source
  6579. (origin
  6580. (method git-fetch)
  6581. (uri (git-reference
  6582. (url "https://github.com/archimag/garbage-pools")
  6583. (commit commit)))
  6584. (file-name (git-file-name name version))
  6585. (sha256
  6586. (base32 "04jqwr6j138him6wc4nrwjzm4lvyj5j31xqab02nkf8h9hmsf5v1"))))
  6587. (build-system asdf-build-system/sbcl)
  6588. (home-page "https://github.com/archimag/garbage-pools")
  6589. (synopsis "Resource management pools for Common Lisp")
  6590. (description "GARBAGE-POOLS is Common Lisp re-implementation of the APR
  6591. Pools for resource management.")
  6592. (license license:expat))))
  6593. (define-public ecl-garbage-pools
  6594. (sbcl-package->ecl-package sbcl-garbage-pools))
  6595. (define-public cl-garbage-pools
  6596. (sbcl-package->cl-source-package sbcl-garbage-pools))
  6597. (define-public sbcl-global-vars
  6598. (let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
  6599. (revision "0"))
  6600. (package
  6601. (name "sbcl-global-vars")
  6602. (version (git-version "1.0.0" revision commit))
  6603. (home-page "https://github.com/lmj/global-vars")
  6604. (source
  6605. (origin
  6606. (method git-fetch)
  6607. (uri (git-reference
  6608. (url home-page)
  6609. (commit commit)))
  6610. (file-name (git-file-name name version))
  6611. (sha256
  6612. (base32
  6613. "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
  6614. (build-system asdf-build-system/sbcl)
  6615. (synopsis "Efficient global variables in Common Lisp")
  6616. (description
  6617. "In Common Lisp, a special variable that is never dynamically bound
  6618. typically serves as a stand-in for a global variable. The @code{global-vars}
  6619. library provides true global variables that are implemented by some compilers.
  6620. An attempt to rebind a global variable properly results in a compiler error.
  6621. That is, a global variable cannot be dynamically bound.
  6622. Global variables therefore allow us to communicate an intended usage that
  6623. differs from special variables. Global variables are also more efficient than
  6624. special variables, especially in the presence of threads.")
  6625. (license license:expat))))
  6626. (define-public cl-global-vars
  6627. (sbcl-package->cl-source-package sbcl-global-vars))
  6628. (define-public ecl-global-vars
  6629. (sbcl-package->ecl-package sbcl-global-vars))
  6630. (define-public sbcl-trivial-file-size
  6631. (let ((commit "1c1d672a01a446ba0391dbb4ffc40be3b0476f23")
  6632. (revision "0"))
  6633. (package
  6634. (name "sbcl-trivial-file-size")
  6635. (version (git-version "0.0.0" revision commit))
  6636. (home-page "https://github.com/ruricolist/trivial-file-size")
  6637. (source
  6638. (origin
  6639. (method git-fetch)
  6640. (uri (git-reference
  6641. (url home-page)
  6642. (commit commit)))
  6643. (file-name (git-file-name name version))
  6644. (sha256
  6645. (base32
  6646. "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
  6647. (build-system asdf-build-system/sbcl)
  6648. (native-inputs
  6649. (list sbcl-fiveam))
  6650. (synopsis "Size of a file in bytes in Common Lisp")
  6651. (description
  6652. "The canonical way to determine the size of a file in bytes, using Common Lisp,
  6653. is to open the file with an element type of (unsigned-byte 8) and then
  6654. calculate the length of the stream. This is less than ideal. In most cases
  6655. it is better to get the size of the file from its metadata, using a system
  6656. call.
  6657. This library exports a single function, file-size-in-octets. It returns the
  6658. size of a file in bytes, using system calls when possible.")
  6659. (license license:expat))))
  6660. (define-public cl-trivial-file-size
  6661. (sbcl-package->cl-source-package sbcl-trivial-file-size))
  6662. (define-public ecl-trivial-file-size
  6663. (sbcl-package->ecl-package sbcl-trivial-file-size))
  6664. (define-public sbcl-trivial-macroexpand-all
  6665. (let ((commit "933270ac7107477de1bc92c1fd641fe646a7a8a9")
  6666. (revision "0"))
  6667. (package
  6668. (name "sbcl-trivial-macroexpand-all")
  6669. (version (git-version "0.0.0" revision commit))
  6670. (home-page "https://github.com/cbaggers/trivial-macroexpand-all")
  6671. (source
  6672. (origin
  6673. (method git-fetch)
  6674. (uri (git-reference
  6675. (url home-page)
  6676. (commit commit)))
  6677. (file-name (git-file-name name version))
  6678. (sha256
  6679. (base32
  6680. "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
  6681. (build-system asdf-build-system/sbcl)
  6682. (native-inputs
  6683. (list sbcl-fiveam))
  6684. (synopsis "Portable macroexpand-all for Common Lisp")
  6685. (description
  6686. "This library provides a macroexpand-all function that calls the
  6687. implementation specific equivalent.")
  6688. (license license:unlicense))))
  6689. (define-public cl-trivial-macroexpand-all
  6690. (sbcl-package->cl-source-package sbcl-trivial-macroexpand-all))
  6691. (define-public ecl-trivial-macroexpand-all
  6692. (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
  6693. (define-public sbcl-serapeum
  6694. (let ((commit "c29a52ff0c5f6e60b09919c3a0daa8df7599ddb9")
  6695. (revision "6"))
  6696. (package
  6697. (name "sbcl-serapeum")
  6698. (version (git-version "0.0.0" revision commit))
  6699. (home-page "https://github.com/ruricolist/serapeum")
  6700. (source
  6701. (origin
  6702. (method git-fetch)
  6703. (uri (git-reference
  6704. (url home-page)
  6705. (commit commit)))
  6706. (file-name (git-file-name name version))
  6707. (sha256
  6708. (base32 "0vij9jhji09way1rpd0r5sgjnh5amm3f2ymppnqkw0c6nnk2p0kd"))))
  6709. (build-system asdf-build-system/sbcl)
  6710. (inputs
  6711. `(("alexandria" ,sbcl-alexandria)
  6712. ("trivia" ,sbcl-trivia)
  6713. ("split-sequence" ,sbcl-split-sequence)
  6714. ("string-case" ,sbcl-string-case)
  6715. ("parse-number" ,sbcl-parse-number)
  6716. ("trivial-garbage" ,sbcl-trivial-garbage)
  6717. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  6718. ("named-readtables" ,sbcl-named-readtables)
  6719. ("fare-quasiquote" ,sbcl-fare-quasiquote)
  6720. ("parse-declarations-1.0" ,sbcl-parse-declarations)
  6721. ("global-vars" ,sbcl-global-vars)
  6722. ("trivial-file-size" ,sbcl-trivial-file-size)
  6723. ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
  6724. (native-inputs
  6725. `(("fiveam" ,sbcl-fiveam)
  6726. ("local-time" ,sbcl-local-time)))
  6727. (arguments
  6728. '(#:phases
  6729. (modify-phases %standard-phases
  6730. (add-after 'unpack 'disable-failing-tests
  6731. (lambda* (#:key inputs #:allow-other-keys)
  6732. (substitute* "serapeum.asd"
  6733. ;; Guix does not have Quicklisp, and probably never will.
  6734. (("\\(:file \"quicklisp\"\\)") ""))
  6735. #t)))))
  6736. (synopsis "Common Lisp utility library beyond Alexandria")
  6737. (description
  6738. "Serapeum is a conservative library of Common Lisp utilities. It is a
  6739. supplement, not a competitor, to Alexandria.")
  6740. (license license:expat))))
  6741. (define-public cl-serapeum
  6742. (sbcl-package->cl-source-package sbcl-serapeum))
  6743. (define-public ecl-serapeum
  6744. (sbcl-package->ecl-package sbcl-serapeum))
  6745. (define-public sbcl-rutils
  6746. (let ((commit "db3c3f4ae897025b5f0cd81042ca147da60ca0c5")
  6747. (revision "0"))
  6748. (package
  6749. (name "sbcl-rutils")
  6750. (version (git-version "5.2.1" revision commit))
  6751. (source
  6752. (origin
  6753. (method git-fetch)
  6754. (uri (git-reference
  6755. (url "https://github.com/vseloved/rutils")
  6756. (commit commit)))
  6757. (file-name (git-file-name "rutils" version))
  6758. (sha256
  6759. (base32 "1d2whscknh1zga2vdqvfqri8wx0gnml3sfqz62igq0ppap6q07y3"))))
  6760. (build-system asdf-build-system/sbcl)
  6761. (arguments
  6762. `(#:asd-systems '("rutils" "rutilsx")
  6763. ;; Tests disabled because of a circular dependency with should-test.
  6764. #:tests? #f
  6765. #:phases
  6766. (modify-phases %standard-phases
  6767. (add-after 'unpack 'fix-build
  6768. (lambda _
  6769. ;; File faild to load, and we don't use it as tests are
  6770. ;; disabled, so let's delete it.
  6771. (delete-file "rutilsx-test.asd"))))))
  6772. (inputs
  6773. `(("closer-mop" ,sbcl-closer-mop)
  6774. ("named-readtables" ,sbcl-named-readtables)))
  6775. (home-page "https://github.com/vseloved/rutils")
  6776. (synopsis "Radical Utilities for Common Lisp")
  6777. (description "RUTILS is a syntactic utilities package for Common Lisp.")
  6778. (license license:bsd-3))))
  6779. (define-public cl-rutils
  6780. (sbcl-package->cl-source-package sbcl-rutils))
  6781. (define-public ecl-rutils
  6782. (sbcl-package->ecl-package sbcl-rutils))
  6783. (define-public sbcl-arrows
  6784. (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
  6785. (revision "0"))
  6786. (package
  6787. (name "sbcl-arrows")
  6788. (version (git-version "0.2.0" revision commit))
  6789. (source
  6790. (origin
  6791. (method git-fetch)
  6792. (uri (git-reference
  6793. (url "https://gitlab.com/Harleqin/arrows.git")
  6794. (commit commit)))
  6795. (file-name (git-file-name name version))
  6796. (sha256
  6797. (base32
  6798. "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
  6799. (build-system asdf-build-system/sbcl)
  6800. (native-inputs
  6801. (list sbcl-hu.dwim.stefil))
  6802. (synopsis "Clojure-like arrow macros for Common Lisp")
  6803. (description
  6804. "This library implements the @code{->} and @code{->>} macros from
  6805. Clojure, as well as several expansions on the idea.")
  6806. (home-page "https://gitlab.com/Harleqin/arrows")
  6807. (license license:public-domain))))
  6808. (define-public cl-arrows
  6809. (sbcl-package->cl-source-package sbcl-arrows))
  6810. (define-public ecl-arrows
  6811. (sbcl-package->ecl-package sbcl-arrows))
  6812. (define-public sbcl-simple-parallel-tasks
  6813. (let ((commit "ce7b60f788d8f68dfb69b24aac54c0e3b63379a6")
  6814. (revision "1"))
  6815. (package
  6816. (name "sbcl-simple-parallel-tasks")
  6817. (version (git-version "1.0" revision commit))
  6818. (source
  6819. (origin
  6820. (method git-fetch)
  6821. (uri (git-reference
  6822. (url "https://github.com/glv2/simple-parallel-tasks")
  6823. (commit commit)))
  6824. (file-name (git-file-name name version))
  6825. (sha256
  6826. (base32 "0gvbpyff4siifp3cp86cpr9ksmakn66fx21f3h0hpn647zl07nj7"))))
  6827. (build-system asdf-build-system/sbcl)
  6828. (native-inputs
  6829. (list sbcl-fiveam))
  6830. (inputs
  6831. (list sbcl-chanl))
  6832. (synopsis "Common Lisp library to evaluate some forms in parallel")
  6833. (description "This is a simple Common Lisp library to evaluate some
  6834. forms in parallel.")
  6835. (home-page "https://github.com/glv2/simple-parallel-tasks")
  6836. (license license:gpl3))))
  6837. (define-public cl-simple-parallel-tasks
  6838. (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
  6839. (define-public ecl-simple-parallel-tasks
  6840. (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
  6841. (define-public sbcl-cl-heap
  6842. (package
  6843. (name "sbcl-cl-heap")
  6844. (version "0.1.6")
  6845. (source
  6846. (origin
  6847. (method url-fetch)
  6848. (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
  6849. "cl-heap_" version ".tar.gz"))
  6850. (sha256
  6851. (base32
  6852. "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
  6853. (build-system asdf-build-system/sbcl)
  6854. (native-inputs
  6855. (list sbcl-xlunit))
  6856. (arguments
  6857. `(#:test-asd-file "cl-heap-tests.asd"))
  6858. (synopsis "Heap and priority queue data structures for Common Lisp")
  6859. (description
  6860. "CL-HEAP provides various implementations of heap data structures (a
  6861. binary heap and a Fibonacci heap) as well as an efficient priority queue.")
  6862. (home-page "https://common-lisp.net/project/cl-heap/")
  6863. (license license:gpl3+)))
  6864. (define-public cl-heap
  6865. (sbcl-package->cl-source-package sbcl-cl-heap))
  6866. (define-public ecl-cl-heap
  6867. (sbcl-package->ecl-package sbcl-cl-heap))
  6868. (define-public sbcl-curry-compose-reader-macros
  6869. (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
  6870. (revision "0"))
  6871. (package
  6872. (name "sbcl-curry-compose-reader-macros")
  6873. (version (git-version "1.0.0" revision commit))
  6874. (source
  6875. (origin
  6876. (method git-fetch)
  6877. (uri
  6878. (git-reference
  6879. (url "https://github.com/eschulte/curry-compose-reader-macros")
  6880. (commit commit)))
  6881. (file-name (git-file-name name version))
  6882. (sha256
  6883. (base32
  6884. "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
  6885. (build-system asdf-build-system/sbcl)
  6886. (inputs
  6887. (list sbcl-alexandria sbcl-named-readtables))
  6888. (synopsis "Reader macros for partial application and composition")
  6889. (description
  6890. "This Common Lisp library provides reader macros for concise expression
  6891. of function partial application and composition.")
  6892. (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
  6893. (license license:public-domain))))
  6894. (define-public cl-curry-compose-reader-macros
  6895. (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
  6896. (define-public ecl-curry-compose-reader-macros
  6897. (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
  6898. (define-public sbcl-yason
  6899. (package
  6900. (name "sbcl-yason")
  6901. (version "0.7.7")
  6902. (source
  6903. (origin
  6904. (method git-fetch)
  6905. (uri (git-reference
  6906. (url "https://github.com/phmarek/yason")
  6907. (commit (string-append "v" version))))
  6908. (file-name (git-file-name name version))
  6909. (sha256
  6910. (base32
  6911. "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
  6912. (build-system asdf-build-system/sbcl)
  6913. (inputs
  6914. (list sbcl-alexandria sbcl-trivial-gray-streams))
  6915. (synopsis "Common Lisp JSON parser/encoder")
  6916. (description
  6917. "YASON is a Common Lisp library for encoding and decoding data in the
  6918. JSON interchange format.")
  6919. (home-page "https://github.com/phmarek/yason")
  6920. (license license:bsd-3)))
  6921. (define-public cl-yason
  6922. (sbcl-package->cl-source-package sbcl-yason))
  6923. (define-public ecl-yason
  6924. (sbcl-package->ecl-package sbcl-yason))
  6925. (define-public sbcl-graph
  6926. (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
  6927. (revision "0"))
  6928. (package
  6929. (name "sbcl-graph")
  6930. (version (git-version "0.0.0" revision commit))
  6931. (source
  6932. (origin
  6933. (method git-fetch)
  6934. (uri
  6935. (git-reference
  6936. (url "https://github.com/eschulte/graph")
  6937. (commit commit)))
  6938. (file-name (git-file-name name version))
  6939. (sha256
  6940. (base32
  6941. "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))))
  6942. (build-system asdf-build-system/sbcl)
  6943. (native-inputs
  6944. (list sbcl-stefil))
  6945. (inputs
  6946. `(("alexandria" ,sbcl-alexandria)
  6947. ("cl-heap" ,sbcl-cl-heap)
  6948. ("cl-ppcre" ,sbcl-cl-ppcre)
  6949. ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
  6950. ("metabang-bind" ,sbcl-metabang-bind)
  6951. ("named-readtables" ,sbcl-named-readtables)
  6952. ("yason" ,sbcl-yason)))
  6953. (arguments
  6954. '(#:asd-systems '("graph"
  6955. "graph/dot"
  6956. "graph/json")))
  6957. (synopsis "Graph data structure and algorithms for Common Lisp")
  6958. (description
  6959. "The GRAPH Common Lisp library provides a data structures to represent
  6960. graphs, as well as some graph manipulation and analysis algorithms (shortest
  6961. path, maximum flow, minimum spanning tree, etc.).")
  6962. (home-page "https://eschulte.github.io/graph/")
  6963. (license license:gpl3+))))
  6964. (define-public cl-graph
  6965. (sbcl-package->cl-source-package sbcl-graph))
  6966. (define-public ecl-graph
  6967. (sbcl-package->ecl-package sbcl-graph))
  6968. (define-public sbcl-trivial-indent
  6969. (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
  6970. (revision "0"))
  6971. (package
  6972. (name "sbcl-trivial-indent")
  6973. (version (git-version "1.0.0" revision commit))
  6974. (source
  6975. (origin
  6976. (method git-fetch)
  6977. (uri
  6978. (git-reference
  6979. (url "https://github.com/Shinmera/trivial-indent")
  6980. (commit commit)))
  6981. (file-name (git-file-name name version))
  6982. (sha256
  6983. (base32
  6984. "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266"))))
  6985. (build-system asdf-build-system/sbcl)
  6986. (synopsis "Simple Common Lisp library to allow indentation hints for SWANK")
  6987. (description
  6988. "This library allows you to define custom indentation hints for your
  6989. macros if the one recognised by SLIME automatically produces unwanted
  6990. results.")
  6991. (home-page "https://shinmera.github.io/trivial-indent/")
  6992. (license license:zlib))))
  6993. (define-public cl-trivial-indent
  6994. (sbcl-package->cl-source-package sbcl-trivial-indent))
  6995. (define-public ecl-trivial-indent
  6996. (sbcl-package->ecl-package sbcl-trivial-indent))
  6997. (define-public sbcl-documentation-utils
  6998. (let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
  6999. (revision "0"))
  7000. (package
  7001. (name "sbcl-documentation-utils")
  7002. (version (git-version "1.2.0" revision commit))
  7003. (source
  7004. (origin
  7005. (method git-fetch)
  7006. (uri
  7007. (git-reference
  7008. (url "https://github.com/Shinmera/documentation-utils")
  7009. (commit commit)))
  7010. (file-name (git-file-name name version))
  7011. (sha256
  7012. (base32
  7013. "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
  7014. (build-system asdf-build-system/sbcl)
  7015. (inputs
  7016. (list sbcl-trivial-indent))
  7017. (synopsis "Few simple tools to document Common Lisp libraries")
  7018. (description
  7019. "This is a small library to help you with managing the Common Lisp
  7020. docstrings for your library.")
  7021. (home-page "https://shinmera.github.io/documentation-utils/")
  7022. (license license:zlib))))
  7023. (define-public cl-documentation-utils
  7024. (sbcl-package->cl-source-package sbcl-documentation-utils))
  7025. (define-public ecl-documentation-utils
  7026. (sbcl-package->ecl-package sbcl-documentation-utils))
  7027. (define-public sbcl-documentation-utils-extensions
  7028. (let ((commit "f67f8a05d583174662a594b79356b201c1d9d750"))
  7029. (package
  7030. (name "sbcl-documentation-utils-extensions")
  7031. (version (git-version "0.0.0" "1" commit))
  7032. (source
  7033. (origin
  7034. (method git-fetch)
  7035. (uri
  7036. (git-reference
  7037. (url "https://github.com/sirherrbatka/documentation-utils-extensions/")
  7038. (commit commit)))
  7039. (file-name (git-file-name name version))
  7040. (sha256
  7041. (base32
  7042. "0pn45c9rbxlnhn5nvhqz6kyv0nlirwxpg4j27niwdq80yxzsn51f"))))
  7043. (build-system asdf-build-system/sbcl)
  7044. (inputs
  7045. (list sbcl-documentation-utils))
  7046. (home-page "https://github.com/sirherrbatka/documentation-utils-extensions")
  7047. (synopsis "Set of extensions for documentation-utils")
  7048. (description
  7049. "Use @code{rich-formatter} to format documentation with sections @code{:syntax},
  7050. @code{:arguments}, @code{:examples}, @code{:description}, @code{:returns},
  7051. @code{:side-effects}, @code{:thread-safety}, @code{:affected-by},
  7052. @code{:see-also} and @code{:notes}. Gather unformatted input by using
  7053. @code{rich-aggregating-formatter} and @code{*DOCUMENTATION*} variable. Find
  7054. gathered documentation with find-documentation function. Execute code stored
  7055. in documentation with @code{execute-documentation}. See the examples in the
  7056. @code{src/documentation.lisp} file. See the @code{documentation-utils} system
  7057. for more information.")
  7058. (license license:expat))))
  7059. (define-public cl-documentation-utils-extensions
  7060. (sbcl-package->cl-source-package sbcl-documentation-utils-extensions))
  7061. (define-public ecl-documentation-utils-extensions
  7062. (sbcl-package->ecl-package sbcl-documentation-utils-extensions))
  7063. (define-public sbcl-form-fiddle
  7064. (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
  7065. (revision "0"))
  7066. (package
  7067. (name "sbcl-form-fiddle")
  7068. (version (git-version "1.1.0" revision commit))
  7069. (source
  7070. (origin
  7071. (method git-fetch)
  7072. (uri
  7073. (git-reference
  7074. (url "https://github.com/Shinmera/form-fiddle")
  7075. (commit commit)))
  7076. (file-name (git-file-name name version))
  7077. (sha256
  7078. (base32
  7079. "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
  7080. (build-system asdf-build-system/sbcl)
  7081. (inputs
  7082. (list sbcl-documentation-utils))
  7083. (synopsis "Utilities to destructure Common Lisp lambda forms")
  7084. (description
  7085. "Often times we need to destructure a form definition in a Common Lisp
  7086. macro. This library provides a set of simple utilities to help with that.")
  7087. (home-page "https://shinmera.github.io/form-fiddle/")
  7088. (license license:zlib))))
  7089. (define-public cl-form-fiddle
  7090. (sbcl-package->cl-source-package sbcl-form-fiddle))
  7091. (define-public ecl-form-fiddle
  7092. (sbcl-package->ecl-package sbcl-form-fiddle))
  7093. (define-public sbcl-array-utils
  7094. (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
  7095. (revision "0"))
  7096. (package
  7097. (name "sbcl-array-utils")
  7098. (version (git-version "1.1.1" revision commit))
  7099. (source
  7100. (origin
  7101. (method git-fetch)
  7102. (uri
  7103. (git-reference
  7104. (url "https://github.com/Shinmera/array-utils")
  7105. (commit commit)))
  7106. (file-name (git-file-name name version))
  7107. (sha256
  7108. (base32
  7109. "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
  7110. (build-system asdf-build-system/sbcl)
  7111. (native-inputs
  7112. (list sbcl-parachute))
  7113. (inputs
  7114. (list sbcl-documentation-utils))
  7115. (synopsis "Tiny collection of array and vector utilities for Common Lisp")
  7116. (description
  7117. "A miniature toolkit that contains some useful shifting/popping/pushing
  7118. functions for arrays and vectors. Originally from Plump.")
  7119. (home-page "https://shinmera.github.io/array-utils/")
  7120. (license license:zlib))))
  7121. (define-public cl-array-utils
  7122. (sbcl-package->cl-source-package sbcl-array-utils))
  7123. (define-public ecl-array-utils
  7124. (sbcl-package->ecl-package sbcl-array-utils))
  7125. (define-public sbcl-plump
  7126. (let ((commit "3584275f0be9d06c0c51b5c08f89005deafc4ada")
  7127. (revision "2"))
  7128. (package
  7129. (name "sbcl-plump")
  7130. (version (git-version "2.0.0" revision commit))
  7131. (source
  7132. (origin
  7133. (method git-fetch)
  7134. (uri
  7135. (git-reference
  7136. (url "https://github.com/Shinmera/plump")
  7137. (commit commit)))
  7138. (file-name (git-file-name name version))
  7139. (sha256
  7140. (base32
  7141. "1w4wz7f6dc2ckdq9wq9r5014bg2nxjifj9yz1zzn41r8h1h5xfcd"))))
  7142. (build-system asdf-build-system/sbcl)
  7143. (inputs
  7144. (list sbcl-array-utils sbcl-documentation-utils))
  7145. (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
  7146. (description
  7147. "Plump is a parser for HTML/XML-like documents, focusing on being
  7148. lenient towards invalid markup. It can handle things like invalid attributes,
  7149. bad closing tag order, unencoded entities, inexistent tag types, self-closing
  7150. tags and so on. It parses documents to a class representation and offers a
  7151. small set of DOM functions to manipulate it. It can be extended to parse to
  7152. your own classes.")
  7153. (home-page "https://shinmera.github.io/plump/")
  7154. (license license:zlib))))
  7155. (define-public cl-plump
  7156. (sbcl-package->cl-source-package sbcl-plump))
  7157. (define-public ecl-plump
  7158. (sbcl-package->ecl-package sbcl-plump))
  7159. ;;; Split the antik package in two to work around the circular dependency
  7160. ;;; between antik/antik and antik/gsll.
  7161. (define-public sbcl-antik-base
  7162. (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
  7163. (revision "1"))
  7164. (package
  7165. (name "sbcl-antik-base")
  7166. (version (git-version "0.0.0" revision commit))
  7167. (source
  7168. (origin
  7169. (method git-fetch)
  7170. (uri (git-reference
  7171. (url "https://gitlab.common-lisp.net/antik/antik.git")
  7172. (commit commit)))
  7173. (file-name (git-file-name name version))
  7174. (sha256
  7175. (base32
  7176. "047ga2c38par2xbgg4qx6hwv06qhf1c1f67as8xvir6s80lip1km"))))
  7177. (build-system asdf-build-system/sbcl)
  7178. (inputs
  7179. `(("alexandria" ,sbcl-alexandria)
  7180. ("cffi" ,sbcl-cffi)
  7181. ("cl-ppcre" ,sbcl-cl-ppcre)
  7182. ("drakma" ,sbcl-drakma)
  7183. ("fare-utils" ,sbcl-fare-utils)
  7184. ("iterate" ,sbcl-iterate)
  7185. ("metabang-bind" ,sbcl-metabang-bind)
  7186. ("named-readtables" ,sbcl-named-readtables)
  7187. ("split-sequence" ,sbcl-split-sequence)
  7188. ("static-vectors" ,sbcl-static-vectors)
  7189. ("trivial-garbage" ,sbcl-trivial-garbage)
  7190. ("trivial-utf-8" ,sbcl-trivial-utf-8)))
  7191. (native-inputs
  7192. (list sbcl-lisp-unit))
  7193. (arguments
  7194. '(#:asd-systems '("antik-base"
  7195. "foreign-array")
  7196. #:phases
  7197. (modify-phases %standard-phases
  7198. (add-after 'unpack 'fix-build
  7199. (lambda _
  7200. (for-each delete-file
  7201. '("antik.asd"
  7202. "physical-dimension.asd"
  7203. "science-data.asd"))
  7204. #t)))))
  7205. (synopsis "Scientific and engineering computation in Common Lisp")
  7206. (description
  7207. "Antik provides a foundation for scientific and engineering
  7208. computation in Common Lisp. It is designed not only to facilitate
  7209. numerical computations, but to permit the use of numerical computation
  7210. libraries and the interchange of data and procedures, whether
  7211. foreign (non-Lisp) or Lisp libraries. It is named after the
  7212. Antikythera mechanism, one of the oldest examples of a scientific
  7213. computer known.")
  7214. (home-page "https://common-lisp.net/project/antik/")
  7215. (license license:gpl3))))
  7216. (define-public cl-antik-base
  7217. (sbcl-package->cl-source-package sbcl-antik-base))
  7218. (define-public ecl-antik-base
  7219. (let ((pkg (sbcl-package->ecl-package sbcl-antik-base)))
  7220. (package
  7221. (inherit pkg)
  7222. (arguments
  7223. (substitute-keyword-arguments (package-arguments pkg)
  7224. ((#:phases phases)
  7225. `(modify-phases ,phases
  7226. (add-after 'unpack 'fix-readtable
  7227. (lambda _
  7228. (substitute* "input-output/readtable.lisp"
  7229. (("#-ccl")
  7230. "#-(or ccl ecl)"))
  7231. #t)))))))))
  7232. (define-public sbcl-gsll
  7233. (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
  7234. (revision "1"))
  7235. (package
  7236. (name "sbcl-gsll")
  7237. (version (git-version "0.0.0" revision commit))
  7238. (source
  7239. (origin
  7240. (method git-fetch)
  7241. (uri (git-reference
  7242. (url "https://gitlab.common-lisp.net/antik/gsll.git")
  7243. (commit commit)))
  7244. (file-name (git-file-name name version))
  7245. (sha256
  7246. (base32
  7247. "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
  7248. (build-system asdf-build-system/sbcl)
  7249. (native-inputs
  7250. (list sbcl-lisp-unit))
  7251. (inputs
  7252. `(("alexandria" ,sbcl-alexandria)
  7253. ("antik-base" ,sbcl-antik-base)
  7254. ("cffi" ,sbcl-cffi)
  7255. ("gsl" ,gsl)
  7256. ("metabang-bind" ,sbcl-metabang-bind)
  7257. ("trivial-features" ,sbcl-trivial-features)
  7258. ("trivial-garbage" ,sbcl-trivial-garbage)))
  7259. (arguments
  7260. `(#:tests? #f
  7261. #:phases
  7262. (modify-phases %standard-phases
  7263. (add-after 'unpack 'fix-cffi-paths
  7264. (lambda* (#:key inputs #:allow-other-keys)
  7265. (substitute* "gsll.asd"
  7266. ((":depends-on \\(#:foreign-array")
  7267. ":depends-on (#:foreign-array #:cffi-libffi"))
  7268. (substitute* "init/init.lisp"
  7269. (("libgslcblas.so" all)
  7270. (string-append
  7271. (assoc-ref inputs "gsl") "/lib/" all)))
  7272. (substitute* "init/init.lisp"
  7273. (("libgsl.so" all)
  7274. (string-append
  7275. (assoc-ref inputs "gsl") "/lib/" all))))))))
  7276. (synopsis "GNU Scientific Library for Lisp")
  7277. (description
  7278. "The GNU Scientific Library for Lisp (GSLL) allows the use of the
  7279. GNU Scientific Library (GSL) from Common Lisp. This library provides a
  7280. full range of common mathematical operations useful to scientific and
  7281. engineering applications. The design of the GSLL interface is such
  7282. that access to most of the GSL library is possible in a Lisp-natural
  7283. way; the intent is that the user not be hampered by the restrictions
  7284. of the C language in which GSL has been written. GSLL thus provides
  7285. interactive use of GSL for getting quick answers, even for someone not
  7286. intending to program in Lisp.")
  7287. (home-page "https://common-lisp.net/project/gsll/")
  7288. (license license:gpl3))))
  7289. (define-public cl-gsll
  7290. (sbcl-package->cl-source-package sbcl-gsll))
  7291. (define-public ecl-gsll
  7292. (sbcl-package->ecl-package sbcl-gsll))
  7293. (define-public sbcl-antik
  7294. (package
  7295. (inherit sbcl-antik-base)
  7296. (name "sbcl-antik")
  7297. (inputs
  7298. `(("antik-base" ,sbcl-antik-base)
  7299. ("gsll" ,sbcl-gsll)))
  7300. (arguments
  7301. '(#:asd-systems '("antik"
  7302. "science-data")
  7303. #:phases
  7304. (modify-phases %standard-phases
  7305. (add-after 'unpack 'fix-build
  7306. (lambda _
  7307. (for-each delete-file
  7308. '("antik-base.asd"
  7309. "foreign-array.asd"))
  7310. #t)))))))
  7311. (define-public cl-antik
  7312. (sbcl-package->cl-source-package sbcl-antik))
  7313. (define-public sbcl-cl-interpol
  7314. (let ((commit "70a1137f41dd8889004dbab9536b1adeac2497aa")
  7315. (revision "1"))
  7316. (package
  7317. (name "sbcl-cl-interpol")
  7318. (version (git-version "0.2.7" revision commit))
  7319. (source
  7320. (origin
  7321. (method git-fetch)
  7322. (uri (git-reference
  7323. (url "https://github.com/edicl/cl-interpol")
  7324. (commit commit)))
  7325. (file-name (git-file-name "cl-interpol" version))
  7326. (sha256
  7327. (base32
  7328. "1kr00zf62m7la7rxa2m5w49r9cyzamc106hvjcc8ffmi7a4jw490"))))
  7329. (build-system asdf-build-system/sbcl)
  7330. (inputs
  7331. (list sbcl-cl-unicode sbcl-named-readtables))
  7332. (native-inputs
  7333. (list sbcl-flexi-streams))
  7334. (synopsis "String interpolation for Common Lisp")
  7335. (description
  7336. "CL-INTERPOL is a library for Common Lisp which modifies the
  7337. reader so that you can have interpolation within strings similar to
  7338. Perl or Unix Shell scripts. It also provides various ways to insert
  7339. arbitrary characters into literal strings even if your editor/IDE
  7340. doesn't support them.")
  7341. (home-page "https://edicl.github.io/cl-interpol/")
  7342. (license license:bsd-3))))
  7343. (define-public cl-interpol
  7344. (sbcl-package->cl-source-package sbcl-cl-interpol))
  7345. (define-public ecl-cl-interpol
  7346. (sbcl-package->ecl-package sbcl-cl-interpol))
  7347. (define-public sbcl-symbol-munger
  7348. (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
  7349. (revision "1"))
  7350. (package
  7351. (name "sbcl-symbol-munger")
  7352. (version (git-version "0.0.1" revision commit))
  7353. (source
  7354. (origin
  7355. (method git-fetch)
  7356. (uri (git-reference
  7357. (url "https://github.com/AccelerationNet/symbol-munger")
  7358. (commit commit)))
  7359. (file-name (git-file-name name version))
  7360. (sha256
  7361. (base32
  7362. "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
  7363. (build-system asdf-build-system/sbcl)
  7364. (inputs
  7365. `(("alexandria" ,sbcl-alexandria)
  7366. ("iterate" ,sbcl-iterate)))
  7367. (arguments
  7368. ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
  7369. ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
  7370. '(#:tests? #f))
  7371. (synopsis
  7372. "Capitalization and spacing conversion functions for Common Lisp")
  7373. (description
  7374. "This is a Common Lisp library to change the capitalization and spacing
  7375. of a string or a symbol. It can convert to and from Lisp, english, underscore
  7376. and camel-case rules.")
  7377. (home-page "https://github.com/AccelerationNet/symbol-munger")
  7378. ;; The package declares a BSD license, but all of the license
  7379. ;; text is MIT.
  7380. ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
  7381. (license license:expat))))
  7382. (define-public cl-symbol-munger
  7383. (sbcl-package->cl-source-package sbcl-symbol-munger))
  7384. (define-public ecl-symbol-munger
  7385. (sbcl-package->ecl-package sbcl-symbol-munger))
  7386. (define-public sbcl-cl-csv
  7387. (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651")
  7388. (revision "2"))
  7389. (package
  7390. (name "sbcl-cl-csv")
  7391. (version (git-version "1.0.6" revision commit))
  7392. (source
  7393. (origin
  7394. (method git-fetch)
  7395. (uri (git-reference
  7396. (url "https://github.com/AccelerationNet/cl-csv")
  7397. (commit commit)))
  7398. (file-name (git-file-name name version))
  7399. (sha256
  7400. (base32
  7401. "0gcmlbwx5m3kwgk12qi80w08ak8fgdnvyia429fz6gnxmhg0k54x"))))
  7402. (build-system asdf-build-system/sbcl)
  7403. (arguments
  7404. ;; See: https://github.com/AccelerationNet/cl-csv/pull/34
  7405. `(#:tests? #f))
  7406. (inputs
  7407. `(("alexandria" ,sbcl-alexandria)
  7408. ("cl-interpol" ,sbcl-cl-interpol)
  7409. ("iterate" ,sbcl-iterate)))
  7410. (native-inputs
  7411. (list sbcl-lisp-unit2))
  7412. (synopsis "Common lisp library for comma-separated values")
  7413. (description
  7414. "This is a Common Lisp library providing functions to read/write CSV
  7415. from/to strings, streams and files.")
  7416. (home-page "https://github.com/AccelerationNet/cl-csv")
  7417. (license license:bsd-3))))
  7418. (define-public cl-csv
  7419. (sbcl-package->cl-source-package sbcl-cl-csv))
  7420. (define-public ecl-cl-csv
  7421. (sbcl-package->ecl-package sbcl-cl-csv))
  7422. (define-public sbcl-external-program
  7423. (let ((commit "5888b8f1fd3953feeeacecbba4384ddda584a749")
  7424. (revision "1"))
  7425. (package
  7426. (name "sbcl-external-program")
  7427. (version (git-version "0.0.6" revision commit))
  7428. (source
  7429. (origin
  7430. (method git-fetch)
  7431. (uri (git-reference
  7432. (url "https://github.com/sellout/external-program")
  7433. (commit commit)))
  7434. (file-name (git-file-name name version))
  7435. (sha256
  7436. (base32
  7437. "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
  7438. (build-system asdf-build-system/sbcl)
  7439. (inputs
  7440. (list sbcl-trivial-features))
  7441. (native-inputs
  7442. (list sbcl-fiveam))
  7443. (synopsis "Common Lisp library for running external programs")
  7444. (description
  7445. "EXTERNAL-PROGRAM enables running programs outside the Lisp
  7446. process. It is an attempt to make the RUN-PROGRAM functionality in
  7447. implementations like SBCL and CCL as portable as possible without
  7448. sacrificing much in the way of power.")
  7449. (home-page "https://github.com/sellout/external-program")
  7450. (license license:llgpl))))
  7451. (define-public cl-external-program
  7452. (sbcl-package->cl-source-package sbcl-external-program))
  7453. (define-public ecl-external-program
  7454. (sbcl-package->ecl-package sbcl-external-program))
  7455. (define-public sbcl-cl-ana
  7456. (let ((commit "848185eed1ed65bab3a124870c122f761ce0d87e")
  7457. (revision "2"))
  7458. (package
  7459. (name "sbcl-cl-ana")
  7460. (version (git-version "0.0.0" revision commit))
  7461. (source
  7462. (origin
  7463. (method git-fetch)
  7464. (uri (git-reference
  7465. (url "https://github.com/ghollisjr/cl-ana")
  7466. (commit commit)))
  7467. (file-name (git-file-name "cl-ana" version))
  7468. (sha256
  7469. (base32 "026agqsxq3pg2k9jmy2wysil2z0yn5rykzzhr8rqxsspdwz51z1y"))))
  7470. (build-system asdf-build-system/sbcl)
  7471. (native-inputs
  7472. (list openmpi ;; for hdf-cffi
  7473. pkg-config
  7474. sbcl-cl-fad))
  7475. (inputs
  7476. (list gsl
  7477. hdf5-parallel-openmpi
  7478. libffi
  7479. sbcl-antik
  7480. sbcl-cffi
  7481. sbcl-cl-csv
  7482. sbcl-closer-mop
  7483. sbcl-external-program
  7484. sbcl-gsll
  7485. sbcl-iterate
  7486. sbcl-alexandria
  7487. sbcl-split-sequence))
  7488. (propagated-inputs
  7489. (list gnuplot)) ;; for gnuplot-interface
  7490. (arguments
  7491. `(#:phases
  7492. (modify-phases %standard-phases
  7493. (add-after 'unpack 'fix-paths
  7494. (lambda* (#:key inputs #:allow-other-keys)
  7495. (substitute* "hdf-cffi/src/library.lisp"
  7496. (("libhdf5.so")
  7497. (search-input-file inputs "/lib/libhdf5.so")))
  7498. (substitute* "gsl-cffi/gsl-cffi.lisp"
  7499. (("libgsl.so")
  7500. (search-input-file inputs "/lib/libgsl.so"))))))))
  7501. (synopsis "Common Lisp data analysis library")
  7502. (description
  7503. "CL-ANA is a data analysis library in Common Lisp providing tabular and
  7504. binned data analysis along with nonlinear least squares fitting and
  7505. visualization.")
  7506. (home-page "https://github.com/ghollisjr/cl-ana")
  7507. (license license:gpl3))))
  7508. (define-public cl-ana
  7509. (sbcl-package->cl-source-package sbcl-cl-ana))
  7510. (define-public sbcl-archive
  7511. (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc")
  7512. (revision "1"))
  7513. (package
  7514. (name "sbcl-archive")
  7515. (version (git-version "0.9" revision commit))
  7516. (source (origin
  7517. (method git-fetch)
  7518. (uri (git-reference
  7519. (url "https://github.com/sharplispers/archive")
  7520. (commit commit)))
  7521. (file-name (git-file-name name version))
  7522. (sha256
  7523. (base32
  7524. "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
  7525. (build-system asdf-build-system/sbcl)
  7526. (inputs
  7527. (list sbcl-cl-fad sbcl-trivial-gray-streams))
  7528. (synopsis "Common Lisp library for tar and cpio archives")
  7529. (description
  7530. "This is a Common Lisp library to read and write disk-based file
  7531. archives such as those generated by the tar and cpio programs on Unix.")
  7532. (home-page "https://github.com/sharplispers/archive")
  7533. (license license:bsd-3))))
  7534. (define-public cl-archive
  7535. (sbcl-package->cl-source-package sbcl-archive))
  7536. (define-public ecl-archive
  7537. (sbcl-package->ecl-package sbcl-archive))
  7538. (define-public sbcl-misc-extensions
  7539. (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a")
  7540. (revision "1"))
  7541. (package
  7542. (name "sbcl-misc-extensions")
  7543. (version (git-version "3.3" revision commit))
  7544. (source
  7545. (origin
  7546. (method git-fetch)
  7547. (uri (git-reference
  7548. (url "https://gitlab.common-lisp.net/misc-extensions/devel.git")
  7549. (commit commit)))
  7550. (file-name (git-file-name name version))
  7551. (sha256
  7552. (base32
  7553. "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0"))))
  7554. (build-system asdf-build-system/sbcl)
  7555. (synopsis "Collection of small macros and extensions for Common Lisp")
  7556. (description
  7557. "This project is intended as a catchall for small, general-purpose
  7558. extensions to Common Lisp. It contains:
  7559. @itemize
  7560. @item @code{new-let}, a macro that combines and generalizes @code{let},
  7561. @code{let*} and @code{multiple-value-bind},
  7562. @item @code{gmap}, an iteration macro that generalizes @code{map}.
  7563. @end itemize\n")
  7564. (home-page "https://common-lisp.net/project/misc-extensions/")
  7565. (license license:public-domain))))
  7566. (define-public cl-misc-extensions
  7567. (sbcl-package->cl-source-package sbcl-misc-extensions))
  7568. (define-public ecl-misc-extensions
  7569. (sbcl-package->ecl-package sbcl-misc-extensions))
  7570. (define-public sbcl-mt19937
  7571. (package
  7572. (name "sbcl-mt19937")
  7573. (version "1.1")
  7574. (source
  7575. (origin
  7576. (method url-fetch)
  7577. (uri (string-append "https://common-lisp.net/project/asdf-packaging/"
  7578. "mt19937-latest.tar.gz"))
  7579. (sha256
  7580. (base32
  7581. "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv"))))
  7582. (build-system asdf-build-system/sbcl)
  7583. (synopsis "Mersenne Twister pseudo-random number generator")
  7584. (description
  7585. "MT19937 is a portable Mersenne Twister pseudo-random number generator
  7586. for Common Lisp.")
  7587. (home-page "https://www.cliki.net/mt19937")
  7588. (license license:public-domain)))
  7589. (define-public cl-mt19937
  7590. (sbcl-package->cl-source-package sbcl-mt19937))
  7591. (define-public ecl-mt19937
  7592. (sbcl-package->ecl-package sbcl-mt19937))
  7593. (define-public sbcl-fset
  7594. (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852")
  7595. (revision "1"))
  7596. (package
  7597. (name "sbcl-fset")
  7598. (version (git-version "1.3.2" revision commit))
  7599. (source
  7600. (origin
  7601. (method git-fetch)
  7602. (uri (git-reference
  7603. (url "https://github.com/slburson/fset")
  7604. (commit commit)))
  7605. (file-name (git-file-name name version))
  7606. (sha256
  7607. (base32
  7608. "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy"))
  7609. (snippet '(begin
  7610. ;; Remove obsolete copy of system definition.
  7611. (delete-file "Code/fset.asd")
  7612. #t))))
  7613. (build-system asdf-build-system/sbcl)
  7614. (inputs
  7615. (list sbcl-misc-extensions sbcl-mt19937 sbcl-named-readtables))
  7616. (synopsis "Functional set-theoretic collections library")
  7617. (description
  7618. "FSet is a functional set-theoretic collections library for Common Lisp.
  7619. Functional means that all update operations return a new collection rather than
  7620. modifying an existing one in place. Set-theoretic means that collections may
  7621. be nested arbitrarily with no additional programmer effort; for instance, sets
  7622. may contain sets, maps may be keyed by sets, etc.")
  7623. (home-page "https://common-lisp.net/project/fset/Site/index.html")
  7624. (license license:llgpl))))
  7625. (define-public cl-fset
  7626. (sbcl-package->cl-source-package sbcl-fset))
  7627. (define-public ecl-fset
  7628. (package
  7629. (inherit (sbcl-package->ecl-package sbcl-fset))
  7630. (arguments
  7631. ;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined".
  7632. '(#:tests? #f))))
  7633. (define-public sbcl-cl-cont
  7634. (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
  7635. (revision "1"))
  7636. (package
  7637. (name "sbcl-cl-cont")
  7638. (version (git-version "0.3.8" revision commit))
  7639. (source
  7640. (origin
  7641. (method git-fetch)
  7642. (uri (git-reference
  7643. (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git")
  7644. (commit commit)))
  7645. (file-name (git-file-name name version))
  7646. (sha256
  7647. (base32
  7648. "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
  7649. (build-system asdf-build-system/sbcl)
  7650. (inputs
  7651. (list sbcl-alexandria sbcl-closer-mop))
  7652. (native-inputs
  7653. (list sbcl-rt))
  7654. (synopsis "Delimited continuations for Common Lisp")
  7655. (description
  7656. "This is a library that implements delimited continuations by
  7657. transforming Common Lisp code to continuation passing style.")
  7658. (home-page "https://common-lisp.net/project/cl-cont/")
  7659. (license license:llgpl))))
  7660. (define-public cl-cont
  7661. (sbcl-package->cl-source-package sbcl-cl-cont))
  7662. (define-public ecl-cl-cont
  7663. (sbcl-package->ecl-package sbcl-cl-cont))
  7664. (define-public sbcl-cl-coroutine
  7665. (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72")
  7666. (revision "1"))
  7667. (package
  7668. (name "sbcl-cl-coroutine")
  7669. (version (git-version "0.1" revision commit))
  7670. (source
  7671. (origin
  7672. (method git-fetch)
  7673. (uri (git-reference
  7674. (url "https://github.com/takagi/cl-coroutine")
  7675. (commit commit)))
  7676. (file-name (git-file-name name version))
  7677. (sha256
  7678. (base32
  7679. "1cqdhdjxffgfs116l1swjlsmcbly0xgcgrckvaajd566idj9yj4l"))))
  7680. (build-system asdf-build-system/sbcl)
  7681. (inputs
  7682. `(("alexandria" ,sbcl-alexandria)
  7683. ("cl-cont" ,sbcl-cl-cont)))
  7684. (native-inputs
  7685. (list sbcl-prove))
  7686. (arguments
  7687. `(;; TODO: Fix the tests. They fail with:
  7688. ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
  7689. #:tests? #f
  7690. #:phases
  7691. (modify-phases %standard-phases
  7692. (add-after 'unpack 'fix-tests
  7693. (lambda _
  7694. (substitute* "cl-coroutine-test.asd"
  7695. (("cl-test-more")
  7696. "prove"))
  7697. #t)))))
  7698. (synopsis "Coroutine library for Common Lisp")
  7699. (description
  7700. "This is a coroutine library for Common Lisp implemented using the
  7701. continuations of the @code{cl-cont} library.")
  7702. (home-page "https://github.com/takagi/cl-coroutine")
  7703. (license license:llgpl))))
  7704. (define-public cl-coroutine
  7705. (sbcl-package->cl-source-package sbcl-cl-coroutine))
  7706. (define-public ecl-cl-coroutine
  7707. (sbcl-package->ecl-package sbcl-cl-coroutine))
  7708. (define-public sbcl-vas-string-metrics
  7709. (let ((commit "f2e4500b180316123fbd549bd51c751ee2d6ba0f")
  7710. (revision "1"))
  7711. (package
  7712. (name "sbcl-vas-string-metrics")
  7713. (version (git-version "0.0.0" revision commit))
  7714. (source
  7715. (origin
  7716. (method git-fetch)
  7717. (uri (git-reference
  7718. (url "https://github.com/vsedach/vas-string-metrics")
  7719. (commit commit)))
  7720. (file-name (git-file-name "vas-string-metrics" version))
  7721. (sha256
  7722. (base32 "11fcnd03ybzz37rkg3z0wsb727yqgcd9gn70sccfb34l89ia279k"))))
  7723. (build-system asdf-build-system/sbcl)
  7724. (arguments
  7725. `(#:test-asd-file "test.vas-string-metrics.asd"))
  7726. (home-page "https://github.com/vsedach/vas-string-metrics")
  7727. (synopsis "String distance algorithms for Common Lisp")
  7728. (description
  7729. "VAS-STRING-METRICS provides the Jaro, Jaro-Winkler, Soerensen-Dice,
  7730. Levenshtein, and normalized Levenshtein string distance/similarity metrics
  7731. algorithms.")
  7732. (license license:lgpl3+))))
  7733. (define-public ecl-vas-string-metrics
  7734. (sbcl-package->ecl-package sbcl-vas-string-metrics))
  7735. (define-public cl-vas-string-metrics
  7736. (sbcl-package->cl-source-package sbcl-vas-string-metrics))
  7737. (define-public sbcl-vom
  7738. (let ((commit "1aeafeb5b74c53741b79497e0ef4acf85c92ff24")
  7739. (revision "1"))
  7740. (package
  7741. (name "sbcl-vom")
  7742. (version (git-version "0.1.4" revision commit))
  7743. (source
  7744. (origin
  7745. (method git-fetch)
  7746. (uri (git-reference
  7747. (url "https://github.com/orthecreedence/vom")
  7748. (commit commit)))
  7749. (file-name (git-file-name name version))
  7750. (sha256
  7751. (base32
  7752. "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy"))))
  7753. (build-system asdf-build-system/sbcl)
  7754. (synopsis "Tiny logging utility for Common Lisp")
  7755. (description
  7756. "Vom is a logging library for Common Lisp. It's goal is to be useful
  7757. and small. It does not provide a lot of features as other loggers do, but
  7758. has a small codebase that's easy to understand and use.")
  7759. (home-page "https://github.com/orthecreedence/vom")
  7760. (license license:expat))))
  7761. (define-public cl-vom
  7762. (sbcl-package->cl-source-package sbcl-vom))
  7763. (define-public ecl-vom
  7764. (sbcl-package->ecl-package sbcl-vom))
  7765. (define-public sbcl-cl-libuv
  7766. (let ((commit "32100c023c518038d0670a103eaa4d50dd785d29")
  7767. (revision "1"))
  7768. (package
  7769. (name "sbcl-cl-libuv")
  7770. (version (git-version "0.1.6" revision commit))
  7771. (source
  7772. (origin
  7773. (method git-fetch)
  7774. (uri (git-reference
  7775. (url "https://github.com/orthecreedence/cl-libuv")
  7776. (commit commit)))
  7777. (file-name (git-file-name name version))
  7778. (sha256
  7779. (base32
  7780. "1kwix4si8a8hza34ab2k7whrh7z0yrmx39v2wc3qblv9m244jkh1"))))
  7781. (build-system asdf-build-system/sbcl)
  7782. (inputs
  7783. `(("alexandria" ,sbcl-alexandria)
  7784. ("cffi" ,sbcl-cffi)
  7785. ("libuv" ,libuv)))
  7786. (arguments
  7787. `(#:phases
  7788. (modify-phases %standard-phases
  7789. (add-after 'unpack 'fix-paths
  7790. (lambda* (#:key inputs #:allow-other-keys)
  7791. (substitute* "lib.lisp"
  7792. (("/usr/lib/libuv.so")
  7793. (search-input-file inputs "/lib/libuv.so")))))
  7794. (add-after 'fix-paths 'fix-system-definition
  7795. (lambda _
  7796. (substitute* "cl-libuv.asd"
  7797. (("#:cffi #:alexandria")
  7798. "#:cffi #:cffi-grovel #:alexandria"))
  7799. #t)))))
  7800. (synopsis "Common Lisp bindings to libuv")
  7801. (description
  7802. "This library provides low-level libuv bindings for Common Lisp.")
  7803. (home-page "https://github.com/orthecreedence/cl-libuv")
  7804. (license license:expat))))
  7805. (define-public cl-libuv
  7806. (sbcl-package->cl-source-package sbcl-cl-libuv))
  7807. (define-public ecl-cl-libuv
  7808. (sbcl-package->ecl-package sbcl-cl-libuv))
  7809. (define-public sbcl-cl-async
  7810. (let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
  7811. (revision "1"))
  7812. (package
  7813. (name "sbcl-cl-async")
  7814. (version (git-version "0.6.1" revision commit))
  7815. (source
  7816. (origin
  7817. (method git-fetch)
  7818. (uri (git-reference
  7819. (url "https://github.com/orthecreedence/cl-async")
  7820. (commit commit)))
  7821. (file-name (git-file-name name version))
  7822. (sha256
  7823. (base32
  7824. "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
  7825. (build-system asdf-build-system/sbcl)
  7826. (inputs
  7827. `(("babel" ,sbcl-babel)
  7828. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  7829. ("cffi" ,sbcl-cffi)
  7830. ("cl-libuv" ,sbcl-cl-libuv)
  7831. ("cl-ppcre" ,sbcl-cl-ppcre)
  7832. ("fast-io" ,sbcl-fast-io)
  7833. ("openssl" ,openssl)
  7834. ("static-vectors" ,sbcl-static-vectors)
  7835. ("trivial-features" ,sbcl-trivial-features)
  7836. ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
  7837. ("vom" ,sbcl-vom)))
  7838. (arguments
  7839. `(#:asd-systems '("cl-async"
  7840. "cl-async-repl"
  7841. "cl-async-ssl")
  7842. #:phases
  7843. (modify-phases %standard-phases
  7844. (add-after 'unpack 'fix-paths
  7845. (lambda* (#:key inputs #:allow-other-keys)
  7846. (substitute* "src/ssl/package.lisp"
  7847. (("libcrypto\\.so")
  7848. (search-input-file inputs "/lib/libcrypto.so"))
  7849. (("libssl\\.so")
  7850. (search-input-file inputs "/lib/libssl.so"))))))))
  7851. (synopsis "Asynchronous operations for Common Lisp")
  7852. (description
  7853. "Cl-async is a library for general purpose, non-blocking programming in
  7854. Common Lisp. It uses the libuv library as backend.")
  7855. (home-page "https://orthecreedence.github.io/cl-async/")
  7856. (license license:expat))))
  7857. (define-public cl-async
  7858. (sbcl-package->cl-source-package sbcl-cl-async))
  7859. (define-public ecl-cl-async
  7860. (sbcl-package->ecl-package sbcl-cl-async))
  7861. (define-public sbcl-blackbird
  7862. (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
  7863. (revision "1"))
  7864. (package
  7865. (name "sbcl-blackbird")
  7866. (version (git-version "0.5.2" revision commit))
  7867. (source
  7868. (origin
  7869. (method git-fetch)
  7870. (uri (git-reference
  7871. (url "https://github.com/orthecreedence/blackbird")
  7872. (commit commit)))
  7873. (file-name (git-file-name name version))
  7874. (sha256
  7875. (base32
  7876. "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
  7877. (build-system asdf-build-system/sbcl)
  7878. (inputs
  7879. (list sbcl-vom))
  7880. (native-inputs
  7881. (list sbcl-cl-async sbcl-fiveam))
  7882. (synopsis "Promise implementation for Common Lisp")
  7883. (description
  7884. "This is a standalone promise implementation for Common Lisp. It is
  7885. the successor to the now-deprecated cl-async-future project.")
  7886. (home-page "https://orthecreedence.github.io/blackbird/")
  7887. (license license:expat))))
  7888. (define-public cl-blackbird
  7889. (sbcl-package->cl-source-package sbcl-blackbird))
  7890. (define-public ecl-blackbird
  7891. (sbcl-package->ecl-package sbcl-blackbird))
  7892. (define-public sbcl-cl-async-future
  7893. (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
  7894. (revision "1"))
  7895. (package
  7896. (name "sbcl-cl-async-future")
  7897. (version (git-version "0.4.4.1" revision commit))
  7898. (source
  7899. (origin
  7900. (method git-fetch)
  7901. (uri (git-reference
  7902. (url "https://github.com/orthecreedence/cl-async-future")
  7903. (commit commit)))
  7904. (file-name (git-file-name name version))
  7905. (sha256
  7906. (base32
  7907. "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
  7908. (build-system asdf-build-system/sbcl)
  7909. (inputs
  7910. (list sbcl-blackbird))
  7911. (native-inputs
  7912. (list sbcl-cl-async sbcl-eos))
  7913. (synopsis "Futures implementation for Common Lisp")
  7914. (description
  7915. "This is futures implementation for Common Lisp. It plugs in nicely
  7916. to cl-async.")
  7917. (home-page "https://orthecreedence.github.io/cl-async/future")
  7918. (license license:expat))))
  7919. (define-public cl-async-future
  7920. (sbcl-package->cl-source-package sbcl-cl-async-future))
  7921. (define-public ecl-cl-async-future
  7922. (sbcl-package->ecl-package sbcl-cl-async-future))
  7923. (define-public sbcl-green-threads
  7924. (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
  7925. (revision "1"))
  7926. (package
  7927. (name "sbcl-green-threads")
  7928. (version (git-version "0.3" revision commit))
  7929. (source
  7930. (origin
  7931. (method git-fetch)
  7932. (uri (git-reference
  7933. (url "https://github.com/thezerobit/green-threads")
  7934. (commit commit)))
  7935. (file-name (git-file-name name version))
  7936. (sha256
  7937. (base32
  7938. "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
  7939. (build-system asdf-build-system/sbcl)
  7940. (inputs
  7941. `(("cl-async-future" ,sbcl-cl-async-future)
  7942. ("cl-cont" ,sbcl-cl-cont)))
  7943. (native-inputs
  7944. (list sbcl-prove))
  7945. (arguments
  7946. `(;; TODO: Fix the tests. They fail with:
  7947. ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
  7948. #:tests? #f
  7949. #:phases
  7950. (modify-phases %standard-phases
  7951. (add-after 'unpack 'fix-tests
  7952. (lambda _
  7953. (substitute* "green-threads-test.asd"
  7954. (("cl-test-more")
  7955. "prove"))
  7956. #t)))))
  7957. (synopsis "Cooperative multitasking library for Common Lisp")
  7958. (description
  7959. "This library allows for cooperative multitasking with help of cl-cont
  7960. for continuations. It tries to mimic the API of bordeaux-threads as much as
  7961. possible.")
  7962. (home-page "https://github.com/thezerobit/green-threads")
  7963. (license license:bsd-3))))
  7964. (define-public cl-green-threads
  7965. (sbcl-package->cl-source-package sbcl-green-threads))
  7966. (define-public ecl-green-threads
  7967. (sbcl-package->ecl-package sbcl-green-threads))
  7968. (define-public sbcl-cl-base32
  7969. (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
  7970. (revision "1"))
  7971. (package
  7972. (name "sbcl-cl-base32")
  7973. (version (git-version "0.1" revision commit))
  7974. (source
  7975. (origin
  7976. (method git-fetch)
  7977. (uri (git-reference
  7978. (url "https://github.com/hargettp/cl-base32")
  7979. (commit commit)))
  7980. (file-name (git-file-name name version))
  7981. (sha256
  7982. (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
  7983. (build-system asdf-build-system/sbcl)
  7984. (native-inputs
  7985. (list sbcl-lisp-unit))
  7986. (synopsis "Common Lisp library for base32 encoding and decoding")
  7987. (description
  7988. "This package provides functions for base32 encoding and decoding as
  7989. defined in RFC4648.")
  7990. (home-page "https://github.com/hargettp/cl-base32")
  7991. (license license:expat))))
  7992. (define-public cl-base32
  7993. (sbcl-package->cl-source-package sbcl-cl-base32))
  7994. (define-public ecl-cl-base32
  7995. (sbcl-package->ecl-package sbcl-cl-base32))
  7996. (define-public sbcl-cl-z85
  7997. (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
  7998. (revision "1"))
  7999. (package
  8000. (name "sbcl-cl-z85")
  8001. (version (git-version "1.0" revision commit))
  8002. (source
  8003. (origin
  8004. (method git-fetch)
  8005. (uri (git-reference
  8006. (url "https://github.com/glv2/cl-z85")
  8007. (commit commit)))
  8008. (file-name (git-file-name name version))
  8009. (sha256
  8010. (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
  8011. (build-system asdf-build-system/sbcl)
  8012. (native-inputs
  8013. (list sbcl-cl-octet-streams sbcl-fiveam))
  8014. (synopsis "Common Lisp library for Z85 encoding and decoding")
  8015. (description
  8016. "This package provides functions to encode or decode byte vectors or
  8017. byte streams using the Z85 format, which is a base-85 encoding used by
  8018. ZeroMQ.")
  8019. (home-page "https://github.com/glv2/cl-z85")
  8020. (license license:gpl3+))))
  8021. (define-public cl-z85
  8022. (sbcl-package->cl-source-package sbcl-cl-z85))
  8023. (define-public ecl-cl-z85
  8024. (sbcl-package->ecl-package sbcl-cl-z85))
  8025. (define-public sbcl-ltk
  8026. (package
  8027. (name "sbcl-ltk")
  8028. (version "0.992")
  8029. (source
  8030. (origin
  8031. (method git-fetch)
  8032. (uri (git-reference
  8033. (url "https://github.com/herth/ltk")
  8034. (commit version)))
  8035. (file-name (git-file-name name version))
  8036. (sha256
  8037. (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
  8038. (build-system asdf-build-system/sbcl)
  8039. (inputs
  8040. (list imagemagick tk))
  8041. (arguments
  8042. `(#:asd-systems '("ltk"
  8043. "ltk-mw"
  8044. "ltk-remote")
  8045. #:tests? #f
  8046. #:phases
  8047. (modify-phases %standard-phases
  8048. (add-after 'unpack 'fix-paths
  8049. (lambda* (#:key inputs #:allow-other-keys)
  8050. (substitute* "ltk/ltk.lisp"
  8051. (("#-freebsd \"wish\"")
  8052. (string-append "#-freebsd \""
  8053. (assoc-ref inputs "tk")
  8054. "/bin/wish\""))
  8055. (("do-execute \"convert\"")
  8056. (string-append "do-execute \""
  8057. (assoc-ref inputs "imagemagick")
  8058. "/bin/convert\"")))
  8059. #t))
  8060. (add-after 'unpack 'fix-build
  8061. (lambda _
  8062. (substitute* "ltk/ltk-remote.lisp"
  8063. (("\\(:export")
  8064. "(:shadow #:raise) (:export"))
  8065. #t)))))
  8066. (synopsis "Common Lisp bindings for the Tk GUI toolkit")
  8067. (description
  8068. "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
  8069. in pure Common Lisp and does not require any Tk knowledge for its usage.")
  8070. (home-page "http://www.peter-herth.de/ltk/")
  8071. (license license:llgpl)))
  8072. (define-public cl-ltk
  8073. (sbcl-package->cl-source-package sbcl-ltk))
  8074. (define-public ecl-ltk
  8075. (sbcl-package->ecl-package sbcl-ltk))
  8076. (define-public sbcl-cl-lex
  8077. (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
  8078. (revision "1"))
  8079. (package
  8080. (name "sbcl-cl-lex")
  8081. (version (git-version "1.1.3" revision commit))
  8082. (source
  8083. (origin
  8084. (method git-fetch)
  8085. (uri (git-reference
  8086. (url "https://github.com/djr7C4/cl-lex")
  8087. (commit commit)))
  8088. (file-name (git-file-name name version))
  8089. (sha256
  8090. (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
  8091. (build-system asdf-build-system/sbcl)
  8092. (inputs
  8093. (list sbcl-cl-ppcre))
  8094. (synopsis "Common Lisp macros for generating lexical analyzers")
  8095. (description
  8096. "This is a Common Lisp library providing a set of macros for generating
  8097. lexical analyzers automatically. The lexers generated using @code{cl-lex} can
  8098. be used with @code{cl-yacc}.")
  8099. (home-page "https://github.com/djr7C4/cl-lex")
  8100. (license license:gpl3))))
  8101. (define-public cl-lex
  8102. (sbcl-package->cl-source-package sbcl-cl-lex))
  8103. (define-public ecl-cl-lex
  8104. (sbcl-package->ecl-package sbcl-cl-lex))
  8105. (define-public sbcl-cl-colors2
  8106. (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
  8107. (revision "1"))
  8108. (package
  8109. (name "sbcl-cl-colors2")
  8110. (version (git-version "0.2.1" revision commit))
  8111. (source
  8112. (origin
  8113. (method git-fetch)
  8114. (uri (git-reference
  8115. (url "https://notabug.org/cage/cl-colors2.git")
  8116. (commit commit)))
  8117. (file-name (git-file-name name version))
  8118. (sha256
  8119. (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
  8120. (build-system asdf-build-system/sbcl)
  8121. (native-inputs
  8122. (list sbcl-clunit2))
  8123. (inputs
  8124. (list sbcl-alexandria sbcl-cl-ppcre))
  8125. (synopsis "Color library for Common Lisp")
  8126. (description
  8127. "This is a very simple color library for Common Lisp, providing:
  8128. @itemize
  8129. @item Types for representing colors in HSV and RGB spaces.
  8130. @item Simple conversion functions between the above types (and also
  8131. hexadecimal representation for RGB).
  8132. @item Some predefined colors (currently X11 color names -- of course
  8133. the library does not depend on X11).
  8134. @end itemize\n")
  8135. (home-page "https://notabug.org/cage/cl-colors2")
  8136. (license license:boost1.0))))
  8137. (define-public cl-colors2
  8138. (sbcl-package->cl-source-package sbcl-cl-colors2))
  8139. (define-public ecl-cl-colors2
  8140. (sbcl-package->ecl-package sbcl-cl-colors2))
  8141. (define-public sbcl-cl-jpeg
  8142. (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
  8143. (revision "1"))
  8144. (package
  8145. (name "sbcl-cl-jpeg")
  8146. (version (git-version "2.8" revision commit))
  8147. (source
  8148. (origin
  8149. (method git-fetch)
  8150. (uri (git-reference
  8151. (url "https://github.com/sharplispers/cl-jpeg")
  8152. (commit commit)))
  8153. (file-name (git-file-name name version))
  8154. (sha256
  8155. (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
  8156. (build-system asdf-build-system/sbcl)
  8157. (synopsis "JPEG image library for Common Lisp")
  8158. (description
  8159. "This is a baseline JPEG codec written in Common Lisp. It can be used
  8160. for reading and writing JPEG image files.")
  8161. (home-page "https://github.com/sharplispers/cl-jpeg")
  8162. (license license:bsd-3))))
  8163. (define-public cl-jpeg
  8164. (sbcl-package->cl-source-package sbcl-cl-jpeg))
  8165. (define-public ecl-cl-jpeg
  8166. (sbcl-package->ecl-package sbcl-cl-jpeg))
  8167. (define-public sbcl-png
  8168. (let ((commit "11b965fe378fd0561abe3616b18ff03af5179648")
  8169. (revision "1"))
  8170. (package
  8171. (name "sbcl-png")
  8172. (version (git-version "0.6" revision commit))
  8173. (source
  8174. (origin
  8175. (method git-fetch)
  8176. (uri (git-reference
  8177. (url "https://github.com/ljosa/cl-png")
  8178. (commit commit)))
  8179. (file-name (git-file-name "cl-png" version))
  8180. (sha256
  8181. (base32 "173hqwpd0rwqf95mfx1h9l9c3i8bb0gvnpspzmmz3g5x3440czy4"))
  8182. ;; Patch to fix compiling with SBCL >= 2.1.6.
  8183. (patches (search-patches "sbcl-png-fix-sbcl-compatibility.patch"))))
  8184. (build-system asdf-build-system/sbcl)
  8185. (arguments
  8186. `(#:phases
  8187. (modify-phases %standard-phases
  8188. (add-after 'unpack 'fix-lib-paths
  8189. (lambda* (#:key inputs #:allow-other-keys)
  8190. (substitute* "libpng.lisp"
  8191. (("\"libpng\"")
  8192. (string-append "\""
  8193. (assoc-ref inputs "libpng")
  8194. "/lib/libpng\""))))))))
  8195. (inputs
  8196. `(("cffi" ,sbcl-cffi)
  8197. ("libpng" ,libpng)))
  8198. (home-page "https://github.com/ljosa/cl-png")
  8199. (synopsis "Read and write PNG file format")
  8200. (description
  8201. "This package provides a @code{PNG} Common Lisp system to operate with
  8202. Portable Network Graphics file format.")
  8203. (license license:lgpl2.1))))
  8204. (define-public ecl-png
  8205. (sbcl-package->ecl-package sbcl-png))
  8206. (define-public cl-png
  8207. (sbcl-package->cl-source-package sbcl-png))
  8208. (define-public sbcl-cl-svg
  8209. (let ((commit "1e988ebd2d6e2ee7be4744208828ef1b59e5dcdc")
  8210. (revision "1"))
  8211. (package
  8212. (name "sbcl-cl-svg")
  8213. (version (git-version "0.0.3" revision commit))
  8214. (source
  8215. (origin
  8216. (method git-fetch)
  8217. (uri (git-reference
  8218. (url "https://github.com/wmannis/cl-svg")
  8219. (commit commit)))
  8220. (file-name (git-file-name "cl-svg" version))
  8221. (sha256
  8222. (base32 "11rmzimy6j7ln7q5y1h2kw1225rsfb6fpn89qjcq7h5lc8fay0wz"))))
  8223. (build-system asdf-build-system/sbcl)
  8224. (home-page "https://github.com/wmannis/cl-svg")
  8225. (synopsis "Write SVG file format")
  8226. (description
  8227. "This package provides the @code{CL-SVG} Common Lisp system to produce
  8228. Scalable Vector Graphics files.")
  8229. (license license:expat))))
  8230. (define-public ecl-cl-svg
  8231. (sbcl-package->ecl-package sbcl-cl-svg))
  8232. (define-public cl-svg
  8233. (sbcl-package->cl-source-package sbcl-cl-svg))
  8234. (define-public sbcl-nodgui
  8235. (let ((commit "4a9c2e7714b278fbe97d198c56f54ea87290001d")
  8236. (revision "1"))
  8237. (package
  8238. (name "sbcl-nodgui")
  8239. (version (git-version "0.1.1" revision commit))
  8240. (source
  8241. (origin
  8242. (method git-fetch)
  8243. (uri (git-reference
  8244. (url "https://notabug.org/cage/nodgui.git")
  8245. (commit commit)))
  8246. (file-name (git-file-name "nodgui" version))
  8247. (sha256
  8248. (base32 "1vgzzw459h32v2mi41cia6i940jqmvxlc8w3xj3516hbc2mqkaib"))))
  8249. (build-system asdf-build-system/sbcl)
  8250. (inputs
  8251. `(("alexandria" ,sbcl-alexandria)
  8252. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  8253. ("cl-colors2" ,sbcl-cl-colors2)
  8254. ("cl-jpeg" ,sbcl-cl-jpeg)
  8255. ("cl-lex" ,sbcl-cl-lex)
  8256. ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
  8257. ("cl-unicode" ,sbcl-cl-unicode)
  8258. ("cl-yacc" ,sbcl-cl-yacc)
  8259. ("clunit2" ,sbcl-clunit2)
  8260. ("named-readtables" ,sbcl-named-readtables)
  8261. ("parse-number" ,sbcl-parse-number)
  8262. ("tk" ,tk)))
  8263. (arguments
  8264. `(#:phases (modify-phases %standard-phases
  8265. (add-after 'unpack 'fix-paths
  8266. (lambda* (#:key inputs #:allow-other-keys)
  8267. (substitute* "src/wish-communication.lisp"
  8268. (("#-freebsd \"wish\"")
  8269. (string-append "#-freebsd \""
  8270. (assoc-ref inputs "tk")
  8271. "/bin/wish\"")))
  8272. #t)))))
  8273. (synopsis "Common Lisp bindings for the Tk GUI toolkit")
  8274. (description
  8275. "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
  8276. toolkit. It also provides a few additional widgets more than the standard Tk
  8277. ones.")
  8278. (home-page "https://www.autistici.org/interzona/nodgui.html")
  8279. (license license:llgpl))))
  8280. (define-public cl-nodgui
  8281. (sbcl-package->cl-source-package sbcl-nodgui))
  8282. (define-public ecl-nodgui
  8283. (sbcl-package->ecl-package sbcl-nodgui))
  8284. (define-public sbcl-salza2
  8285. (package
  8286. (name "sbcl-salza2")
  8287. (version "2.1")
  8288. (source
  8289. (origin
  8290. (method git-fetch)
  8291. (uri (git-reference
  8292. (url "https://github.com/xach/salza2")
  8293. (commit (string-append "release-" version))))
  8294. (file-name (git-file-name name version))
  8295. (sha256
  8296. (base32 "1p48lxdibnps5rpyh5cmnk0vc77bmmxb32qdzfz93zadr8wwas10"))))
  8297. (build-system asdf-build-system/sbcl)
  8298. (native-inputs
  8299. (list sbcl-chipz sbcl-flexi-streams sbcl-parachute))
  8300. (inputs
  8301. (list sbcl-trivial-gray-streams))
  8302. (synopsis "Common Lisp library for zlib, deflate and gzip compression")
  8303. (description
  8304. "Salza2 is a Common Lisp library for creating compressed data in the zlib,
  8305. deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
  8306. respectively.")
  8307. (home-page "https://www.xach.com/lisp/salza2/")
  8308. (license license:bsd-2)))
  8309. (define-public cl-salza2
  8310. (sbcl-package->cl-source-package sbcl-salza2))
  8311. (define-public ecl-salza2
  8312. (sbcl-package->ecl-package sbcl-salza2))
  8313. (define-public sbcl-origin
  8314. (let ((commit "d646134302456408d6d43580bb05299f1695ab8e")
  8315. (revision "1"))
  8316. (package
  8317. (name "sbcl-origin")
  8318. (version (git-version "2.0.0" revision commit))
  8319. (source
  8320. (origin
  8321. (method git-fetch)
  8322. (uri (git-reference
  8323. (url "https://git.mfiano.net/mfiano/origin")
  8324. (commit commit)))
  8325. (file-name (git-file-name "origin" version))
  8326. (sha256
  8327. (base32 "1n9aszaif3yh8prs5r8v51fbj4r5jd1a048mivd5yij3hplkm82b"))))
  8328. (build-system asdf-build-system/sbcl)
  8329. (native-inputs
  8330. (list sbcl-parachute))
  8331. (inputs
  8332. (list sbcl-golden-utils sbcl-specialization-store))
  8333. (home-page "https://git.mfiano.net/mfiano/origin")
  8334. (synopsis "Common Lisp graphics math library")
  8335. (description
  8336. "This is a native Common Lisp graphics math library with an emphasis on
  8337. performance and correctness.")
  8338. (license license:expat))))
  8339. (define-public ecl-origin
  8340. (sbcl-package->ecl-package sbcl-origin))
  8341. (define-public cl-origin
  8342. (sbcl-package->cl-source-package sbcl-origin))
  8343. (define-public sbcl-png-read
  8344. (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
  8345. (revision "1"))
  8346. (package
  8347. (name "sbcl-png-read")
  8348. (version (git-version "0.3.1" revision commit))
  8349. (source
  8350. (origin
  8351. (method git-fetch)
  8352. (uri (git-reference
  8353. (url "https://github.com/Ramarren/png-read")
  8354. (commit commit)))
  8355. (file-name (git-file-name name version))
  8356. (sha256
  8357. (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
  8358. (build-system asdf-build-system/sbcl)
  8359. (inputs
  8360. (list sbcl-babel sbcl-chipz sbcl-iterate))
  8361. (synopsis "PNG decoder for Common Lisp")
  8362. (description "This is a Common Lisp library for reading PNG images.")
  8363. (home-page "https://github.com/Ramarren/png-read")
  8364. (license license:bsd-3))))
  8365. (define-public cl-png-read
  8366. (sbcl-package->cl-source-package sbcl-png-read))
  8367. (define-public ecl-png-read
  8368. (sbcl-package->ecl-package sbcl-png-read))
  8369. (define-public sbcl-3b-bmfont
  8370. (let ((commit "d1b5bec0de580c2d08ec947a93c56b1400f2a37a")
  8371. (revision "1"))
  8372. (package
  8373. (name "sbcl-3b-bmfont")
  8374. (version (git-version "0.0.1" revision commit))
  8375. (source
  8376. (origin
  8377. (method git-fetch)
  8378. (uri (git-reference
  8379. (url "https://github.com/3b/3b-bmfont/")
  8380. (commit commit)))
  8381. (file-name (git-file-name "3b-bmfont" version))
  8382. (sha256
  8383. (base32 "12sgf7m0h6fqzhvkas7vmci6mprj3j3fnz778jlbqbsydln6v2yc"))))
  8384. (build-system asdf-build-system/sbcl)
  8385. (arguments
  8386. `(#:asd-systems
  8387. '("3b-bmfont"
  8388. "3b-bmfont/text"
  8389. "3b-bmfont/common"
  8390. "3b-bmfont/xml"
  8391. "3b-bmfont/json")))
  8392. (inputs
  8393. `(("alexandria" ,sbcl-alexandria)
  8394. ("cxml" ,sbcl-cxml)
  8395. ("flexi-streams" ,sbcl-flexi-streams)
  8396. ("jsown" ,sbcl-jsown)
  8397. ("split-sequence" ,sbcl-split-sequence)))
  8398. (home-page "https://github.com/3b/3b-bmfont/")
  8399. (synopsis "Read/write bmfont metadata files")
  8400. (description
  8401. "This is a Common Lisp library which provides functionality to
  8402. read/write Bit Map Font (BMF) into text, JSON and XML.")
  8403. (license license:expat))))
  8404. (define-public ecl-3b-bmfont
  8405. (sbcl-package->ecl-package sbcl-3b-bmfont))
  8406. (define-public cl-3b-bmfont
  8407. (sbcl-package->cl-source-package sbcl-3b-bmfont))
  8408. (define-public sbcl-zpng
  8409. (package
  8410. (name "sbcl-zpng")
  8411. (version "1.2.2")
  8412. (source
  8413. (origin
  8414. (method git-fetch)
  8415. (uri (git-reference
  8416. (url "https://github.com/xach/zpng")
  8417. (commit (string-append "release-" version))))
  8418. (file-name (git-file-name name version))
  8419. (sha256
  8420. (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
  8421. (build-system asdf-build-system/sbcl)
  8422. (inputs
  8423. (list sbcl-salza2))
  8424. (synopsis "PNG encoder for Common Lisp")
  8425. (description "This is a Common Lisp library for creating PNG images.")
  8426. (home-page "https://www.xach.com/lisp/zpng/")
  8427. (license license:bsd-2)))
  8428. (define-public cl-zpng
  8429. (sbcl-package->cl-source-package sbcl-zpng))
  8430. (define-public ecl-zpng
  8431. (sbcl-package->ecl-package sbcl-zpng))
  8432. (define-public sbcl-cl-qrencode
  8433. (package
  8434. (name "sbcl-cl-qrencode")
  8435. (version "0.1.2")
  8436. (source
  8437. (origin
  8438. (method git-fetch)
  8439. (uri (git-reference
  8440. (url "https://github.com/jnjcc/cl-qrencode")
  8441. (commit (string-append "v" version))))
  8442. (file-name (git-file-name name version))
  8443. (sha256
  8444. (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
  8445. (build-system asdf-build-system/sbcl)
  8446. (native-inputs
  8447. (list sbcl-lisp-unit))
  8448. (inputs
  8449. (list sbcl-zpng))
  8450. (synopsis "QR code encoder for Common Lisp")
  8451. (description
  8452. "This Common Lisp library provides function to make QR codes and to save
  8453. them as PNG files.")
  8454. (home-page "https://github.com/jnjcc/cl-qrencode")
  8455. (license license:gpl2+)))
  8456. (define-public cl-qrencode
  8457. (sbcl-package->cl-source-package sbcl-cl-qrencode))
  8458. (define-public ecl-cl-qrencode
  8459. (sbcl-package->ecl-package sbcl-cl-qrencode))
  8460. (define-public sbcl-hdf5-cffi
  8461. (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
  8462. (revision "1"))
  8463. (package
  8464. (name "sbcl-hdf5-cffi")
  8465. (version (git-version "1.8.18" revision commit))
  8466. (source
  8467. (origin
  8468. (method git-fetch)
  8469. (uri (git-reference
  8470. (url "https://github.com/hdfgroup/hdf5-cffi")
  8471. (commit commit)))
  8472. (file-name (git-file-name name version))
  8473. (sha256
  8474. (base32
  8475. "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
  8476. (build-system asdf-build-system/sbcl)
  8477. (synopsis "Common Lisp bindings for the HDF5 library")
  8478. (description
  8479. "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
  8480. (home-page "https://github.com/hdfgroup/hdf5-cffi")
  8481. (license (license:non-copyleft
  8482. (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
  8483. commit
  8484. "/LICENSE")))
  8485. (inputs
  8486. `(("cffi" ,sbcl-cffi)
  8487. ("hdf5" ,hdf5-1.10)))
  8488. (native-inputs
  8489. (list sbcl-fiveam))
  8490. (arguments
  8491. `(#:test-asd-file "hdf5-cffi.test.asd"
  8492. ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
  8493. ;; I don't know if there is a way to tell asdf-build-system to load
  8494. ;; an additional system first, so tests are disabled.
  8495. #:tests? #f
  8496. #:phases
  8497. (modify-phases %standard-phases
  8498. (add-after 'unpack 'fix-paths
  8499. (lambda* (#:key inputs #:allow-other-keys)
  8500. (substitute* "src/library.lisp"
  8501. (("libhdf5.so")
  8502. (string-append
  8503. (assoc-ref inputs "hdf5")
  8504. "/lib/libhdf5.so")))))
  8505. (add-after 'unpack 'fix-dependencies
  8506. (lambda* (#:key inputs #:allow-other-keys)
  8507. (substitute* "hdf5-cffi.asd"
  8508. ((":depends-on \\(:cffi\\)")
  8509. ":depends-on (:cffi :cffi-grovel)"))
  8510. (substitute* "hdf5-cffi.test.asd"
  8511. ((":depends-on \\(:cffi :hdf5-cffi")
  8512. ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
  8513. (define-public cl-hdf5-cffi
  8514. (sbcl-package->cl-source-package sbcl-hdf5-cffi))
  8515. (define-public ecl-hdf5-cffi
  8516. (sbcl-package->ecl-package sbcl-hdf5-cffi))
  8517. (define-public sbcl-cl-randist
  8518. (package
  8519. (name "sbcl-cl-randist")
  8520. (version "0.4.2")
  8521. (source
  8522. (origin
  8523. (method git-fetch)
  8524. (uri (git-reference
  8525. (url "https://github.com/lvaruzza/cl-randist")
  8526. (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
  8527. (file-name (git-file-name name version))
  8528. (sha256
  8529. (base32
  8530. "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
  8531. (build-system asdf-build-system/sbcl)
  8532. (synopsis "Random distributions for Common Lisp")
  8533. (description
  8534. "Manual translation from C to Common Lisp of some random number
  8535. generation functions from the GSL library.")
  8536. (home-page "https://github.com/lvaruzza/cl-randist")
  8537. (license license:bsd-2)
  8538. (arguments
  8539. `(#:tests? #f))))
  8540. (define-public cl-randist
  8541. (sbcl-package->cl-source-package sbcl-cl-randist))
  8542. (define-public ecl-cl-randist
  8543. (sbcl-package->ecl-package sbcl-cl-randist))
  8544. (define-public sbcl-float-features
  8545. (let ((commit "c1f86aea91cfaa3aa59799162be23ef8a12b199d")
  8546. (revision "2"))
  8547. (package
  8548. (name "sbcl-float-features")
  8549. (version (git-version "1.0.0" revision commit))
  8550. (source
  8551. (origin
  8552. (method git-fetch)
  8553. (uri (git-reference
  8554. (url "https://github.com/Shinmera/float-features")
  8555. (commit commit)))
  8556. (file-name (git-file-name "float-features" version))
  8557. (sha256
  8558. (base32 "0vqm9xhn2i4vbjrxnp4hr1l3lydjflhjykdz6cmqg2j48c5kh3g3"))))
  8559. (build-system asdf-build-system/sbcl)
  8560. (synopsis "Common Lisp IEEE float portability library")
  8561. (description
  8562. "Portability library for IEEE float features that are not
  8563. covered by the Common Lisp standard.")
  8564. (home-page "https://github.com/Shinmera/float-features")
  8565. (license license:zlib)
  8566. (inputs
  8567. `(("documentation-utils" ,sbcl-documentation-utils)))
  8568. (arguments
  8569. `(#:tests? #f)))))
  8570. (define-public cl-float-features
  8571. (sbcl-package->cl-source-package sbcl-float-features))
  8572. (define-public ecl-float-features
  8573. (sbcl-package->ecl-package sbcl-float-features))
  8574. (define-public sbcl-function-cache
  8575. (package
  8576. (name "sbcl-function-cache")
  8577. (version "1.0.3")
  8578. (source
  8579. (origin
  8580. (method git-fetch)
  8581. (uri (git-reference
  8582. (url "https://github.com/AccelerationNet/function-cache")
  8583. (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
  8584. (file-name (git-file-name name version))
  8585. (sha256
  8586. (base32
  8587. "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
  8588. (build-system asdf-build-system/sbcl)
  8589. (synopsis "Function caching / memoization library for Common Lisp")
  8590. (description
  8591. "A common lisp library that provides extensible function result
  8592. caching based on arguments (an expanded form of memoization).")
  8593. (home-page "https://github.com/AccelerationNet/function-cache")
  8594. (license
  8595. (license:non-copyleft
  8596. "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
  8597. (inputs
  8598. `(("alexandria" ,sbcl-alexandria)
  8599. ("cl-interpol" ,sbcl-cl-interpol)
  8600. ("iterate" ,sbcl-iterate)
  8601. ("symbol-munger" ,sbcl-symbol-munger)
  8602. ("closer-mop" ,sbcl-closer-mop)))
  8603. (arguments
  8604. `(#:tests? #f))))
  8605. (define-public cl-function-cache
  8606. (sbcl-package->cl-source-package sbcl-function-cache))
  8607. (define-public ecl-function-cache
  8608. (sbcl-package->ecl-package sbcl-function-cache))
  8609. (define-public sbcl-cache-while
  8610. (let ((commit "38e9ffbdb2c894670c366c1e5802ffcc8cfd43a7")
  8611. (revision "1"))
  8612. (package
  8613. (name "sbcl-cache-while")
  8614. (version (git-version "0.0.0" revision commit))
  8615. (source
  8616. (origin
  8617. (method git-fetch)
  8618. (uri (git-reference
  8619. (url "https://github.com/charje/cache-while")
  8620. (commit commit)))
  8621. (file-name (git-file-name "cache-while" version))
  8622. (sha256
  8623. (base32 "1qil68rfn5irmkb0jk1f6g1zy80wgc3skl8cr4rfgh7ywgm5izx3"))))
  8624. (build-system asdf-build-system/sbcl)
  8625. (home-page "https://github.com/charje/cache-while")
  8626. (synopsis "Temporary / one-time caching macro for Common Lisp")
  8627. (description
  8628. "This is a Common Lisp macro for defining temporary caches that
  8629. invalidate based on expressions evaluating to different values.")
  8630. (license license:llgpl))))
  8631. (define-public cl-cache-while
  8632. (sbcl-package->cl-source-package sbcl-cache-while))
  8633. (define-public ecl-cache-while
  8634. (sbcl-package->ecl-package sbcl-cache-while))
  8635. (define-public sbcl-type-r
  8636. (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
  8637. (revision "1"))
  8638. (package
  8639. (name "sbcl-type-r")
  8640. (version (git-version "0.0.0" revision commit))
  8641. (source
  8642. (origin
  8643. (method git-fetch)
  8644. (uri (git-reference
  8645. (url "https://github.com/guicho271828/type-r")
  8646. (commit commit)))
  8647. (file-name (git-file-name name version))
  8648. (sha256
  8649. (base32
  8650. "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
  8651. (build-system asdf-build-system/sbcl)
  8652. (synopsis "Parser interface for Common Lisp built-in compound types")
  8653. (description
  8654. "Collections of accessor functions and patterns to access
  8655. the elements in compound type specifier, e.g. @code{dimensions} in
  8656. @code{(array element-type dimensions)}")
  8657. (home-page "https://github.com/guicho271828/type-r")
  8658. (license license:lgpl3+)
  8659. (inputs
  8660. `(("trivia" ,sbcl-trivia)
  8661. ("alexandria" ,sbcl-alexandria)))
  8662. (native-inputs
  8663. (list sbcl-fiveam))
  8664. (arguments
  8665. `(#:test-asd-file "type-r.test.asd")))))
  8666. (define-public cl-type-r
  8667. (sbcl-package->cl-source-package sbcl-type-r))
  8668. (define-public ecl-type-r
  8669. (sbcl-package->ecl-package sbcl-type-r))
  8670. (define-public sbcl-trivialib-type-unify
  8671. (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
  8672. (revision "1"))
  8673. (package
  8674. (name "sbcl-trivialib-type-unify")
  8675. (version (git-version "0.1" revision commit))
  8676. (source
  8677. (origin
  8678. (method git-fetch)
  8679. (uri (git-reference
  8680. (url "https://github.com/guicho271828/trivialib.type-unify")
  8681. (commit commit)))
  8682. (file-name (git-file-name name version))
  8683. (sha256
  8684. (base32
  8685. "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
  8686. (build-system asdf-build-system/sbcl)
  8687. (synopsis "Common Lisp type unification")
  8688. (description
  8689. "Unifies a parametrized type specifier against an actual type specifier.
  8690. Importantly, it handles complicated array-subtypes and number-related types
  8691. correctly.")
  8692. (home-page "https://github.com/guicho271828/trivialib.type-unify")
  8693. (license license:lgpl3+)
  8694. (inputs
  8695. `(("alexandria" ,sbcl-alexandria)
  8696. ("trivia" ,sbcl-trivia)
  8697. ("introspect-environment" ,sbcl-introspect-environment)
  8698. ("type-r" ,sbcl-type-r)))
  8699. (native-inputs
  8700. (list sbcl-fiveam))
  8701. (arguments
  8702. `(#:asd-systems '("trivialib.type-unify")
  8703. #:test-asd-file "trivialib.type-unify.test.asd")))))
  8704. (define-public cl-trivialib-type-unify
  8705. (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
  8706. (define-public ecl-trivialib-type-unify
  8707. (sbcl-package->ecl-package sbcl-trivialib-type-unify))
  8708. (define-public sbcl-cl-unification
  8709. (let ((commit "01079f34d197495880aa49ab727d63774d83035c")
  8710. (revision "1"))
  8711. (package
  8712. (name "sbcl-cl-unification")
  8713. (version (git-version "0.0.0" revision commit))
  8714. (source
  8715. (origin
  8716. (method git-fetch)
  8717. (uri (git-reference
  8718. (url "https://gitlab.common-lisp.net/cl-unification/cl-unification")
  8719. (commit commit)))
  8720. (file-name (git-file-name "cl-unification" version))
  8721. (sha256
  8722. (base32 "0nhqamn3qgg38i6aw2pshffdwr2hzslycg8ficmn333gw0h9rf4g"))))
  8723. (build-system asdf-build-system/sbcl)
  8724. (native-inputs
  8725. (list sbcl-ptester))
  8726. (inputs
  8727. (list sbcl-cl-ppcre))
  8728. (home-page "https://common-lisp.net/project/cl-unification/")
  8729. (synopsis "Unification framework for Common Lisp")
  8730. (description
  8731. "This package provides a framework to unify arbitrary
  8732. Common Lisp objects while constructing bindings for placeholders
  8733. (unification variables) in a template sublanguage.")
  8734. (license license:bsd-0))))
  8735. (define-public ecl-cl-unification
  8736. (let ((pkg (sbcl-package->ecl-package sbcl-cl-unification)))
  8737. (package
  8738. (inherit pkg)
  8739. (arguments
  8740. (substitute-keyword-arguments (package-arguments pkg)
  8741. ;; The tests fail on ECL with:
  8742. ;; "In MAKE-ARRAY: the elements in :INITIAL-CONTENTS do not match
  8743. ;; the array dimensions."
  8744. ((#:tests? _ #f) #f))))))
  8745. (define-public cl-unification
  8746. (sbcl-package->cl-source-package sbcl-cl-unification))
  8747. (define-public sbcl-specialized-function
  8748. (let ((commit "5e2b04432bdf728496e6ff7227f210f845af7247")
  8749. (revision "3"))
  8750. (package
  8751. (name "sbcl-specialized-function")
  8752. (version (git-version "0.1" revision commit))
  8753. (source
  8754. (origin
  8755. (method git-fetch)
  8756. (uri (git-reference
  8757. (url "https://github.com/numcl/specialized-function")
  8758. (commit commit)))
  8759. (file-name (git-file-name "specialized-function" version))
  8760. (sha256
  8761. (base32 "19hfgc83b7as630r1w9r8yl0v6xq3dn01vcrl0bd4pza5hgjn4la"))))
  8762. (build-system asdf-build-system/sbcl)
  8763. (synopsis "Julia-like dispatch for Common Lisp")
  8764. (description
  8765. "This library is part of NUMCL. It provides a macro
  8766. @code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
  8767. lazily compiling a type-specific version of the function from the same
  8768. code. The main target of this macro is speed.")
  8769. (home-page "https://github.com/numcl/specialized-function")
  8770. (license license:lgpl3+)
  8771. (inputs
  8772. `(("alexandria" ,sbcl-alexandria)
  8773. ("iterate" ,sbcl-iterate)
  8774. ("lisp-namespace" ,sbcl-lisp-namespace)
  8775. ("trivia" ,sbcl-trivia)
  8776. ("trivial-cltl2" ,sbcl-trivial-cltl2)
  8777. ("type-r" ,sbcl-type-r)))
  8778. (native-inputs
  8779. (list sbcl-fiveam))
  8780. (arguments
  8781. `(#:asd-files '("specialized-function.asd")
  8782. #:test-asd-file "specialized-function.test.asd")))))
  8783. (define-public cl-specialized-function
  8784. (sbcl-package->cl-source-package sbcl-specialized-function))
  8785. (define-public ecl-specialized-function
  8786. (sbcl-package->ecl-package sbcl-specialized-function))
  8787. (define-public sbcl-constantfold
  8788. (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
  8789. (revision "1"))
  8790. (package
  8791. (name "sbcl-constantfold")
  8792. (version (git-version "0.1" revision commit))
  8793. (source
  8794. (origin
  8795. (method git-fetch)
  8796. (uri (git-reference
  8797. (url "https://github.com/numcl/constantfold")
  8798. (commit commit)))
  8799. (file-name (git-file-name name version))
  8800. (sha256
  8801. (base32
  8802. "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
  8803. (build-system asdf-build-system/sbcl)
  8804. (synopsis "Support library for numcl")
  8805. (description
  8806. "Support library for numcl. Registers a function as an
  8807. additional form that is considered as a candidate for a constant.")
  8808. (home-page "https://github.com/numcl/constantfold")
  8809. (license license:lgpl3+)
  8810. (inputs
  8811. `(("trivia" ,sbcl-trivia)
  8812. ("alexandria" ,sbcl-alexandria)
  8813. ("iterate" ,sbcl-iterate)
  8814. ("lisp-namespace" ,sbcl-lisp-namespace)))
  8815. (native-inputs
  8816. (list sbcl-fiveam))
  8817. (arguments
  8818. `(#:asd-files '("constantfold.asd")
  8819. #:test-asd-file "constantfold.test.asd")))))
  8820. (define-public cl-constantfold
  8821. (sbcl-package->cl-source-package sbcl-constantfold))
  8822. (define-public ecl-constantfold
  8823. (sbcl-package->ecl-package sbcl-constantfold))
  8824. (define-public sbcl-gtype
  8825. (let ((commit "2442e32485635525af278ebd8fa69a27d5b8cf18")
  8826. (revision "2"))
  8827. (package
  8828. (name "sbcl-gtype")
  8829. (version (git-version "0.1" revision commit))
  8830. (source
  8831. (origin
  8832. (method git-fetch)
  8833. (uri (git-reference
  8834. (url "https://github.com/numcl/gtype")
  8835. (commit commit)))
  8836. (file-name (git-file-name name version))
  8837. (sha256
  8838. (base32 "0hbkfdw00v7bsa6zbric34p5w6hfwxycccg8wc2faq0cxhsvpv9h"))))
  8839. (build-system asdf-build-system/sbcl)
  8840. (synopsis "C++/Julia-like parametric types in Common Lisp")
  8841. (description
  8842. "Support library for numcl that provides Julia-like runtime parametric
  8843. type correctness in Common Lisp. It is based on CLtL2 extensions.")
  8844. (home-page "https://github.com/numcl/gtype")
  8845. (license license:lgpl3+)
  8846. (inputs
  8847. `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
  8848. ("trivial-cltl2" ,sbcl-trivial-cltl2)
  8849. ("trivia" ,sbcl-trivia)
  8850. ("alexandria" ,sbcl-alexandria)
  8851. ("iterate" ,sbcl-iterate)
  8852. ("type-r" ,sbcl-type-r)))
  8853. (native-inputs
  8854. (list sbcl-fiveam))
  8855. (arguments
  8856. `(#:asd-files '("gtype.asd")
  8857. #:test-asd-file "gtype.test.asd")))))
  8858. (define-public cl-gtype
  8859. (sbcl-package->cl-source-package sbcl-gtype))
  8860. (define-public ecl-gtype
  8861. (let ((pkg (sbcl-package->ecl-package sbcl-gtype)))
  8862. (package
  8863. (inherit pkg)
  8864. (arguments
  8865. (substitute-keyword-arguments (package-arguments pkg)
  8866. ;; The tests fail on ECL with a COMPILE-FILE-ERROR for t/package.lisp.
  8867. ((#:tests? _ #f) #f))))))
  8868. (define-public sbcl-numcl
  8869. (let ((commit "a28f612d072e5f93137584de5155a42243b3bd6b")
  8870. (revision "3"))
  8871. (package
  8872. (name "sbcl-numcl")
  8873. (version (git-version "0.2.0" revision commit))
  8874. (source
  8875. (origin
  8876. (method git-fetch)
  8877. (uri (git-reference
  8878. (url "https://github.com/numcl/numcl")
  8879. (commit commit)))
  8880. (file-name (git-file-name "numcl" version))
  8881. (sha256
  8882. (base32 "15m4spbgayawnw5jjz04zfp0jnk9g6hgq5fmr648hzjzj50j1d78"))))
  8883. (build-system asdf-build-system/sbcl)
  8884. (arguments
  8885. `(#:test-asd-file "numcl.test.asd"
  8886. #:asd-files '("numcl.asd")
  8887. ;; Tests often fail because they require a dynamic-space-size much
  8888. ;; bigger than the default one. Disable them for now.
  8889. #:tests? #f))
  8890. (native-inputs
  8891. (list sbcl-fiveam))
  8892. (inputs
  8893. `(("alexandria" ,sbcl-alexandria)
  8894. ("cl-randist" ,sbcl-cl-randist)
  8895. ("constantfold" ,sbcl-constantfold)
  8896. ("float-features" ,sbcl-float-features)
  8897. ("function-cache" ,sbcl-function-cache)
  8898. ("gtype" ,sbcl-gtype)
  8899. ("iterate" ,sbcl-iterate)
  8900. ("lisp-namespace" ,sbcl-lisp-namespace)
  8901. ("specialized-function" ,sbcl-specialized-function)
  8902. ("trivia" ,sbcl-trivia)
  8903. ("type-r" ,sbcl-type-r)))
  8904. (home-page "https://numcl.github.io/numcl/")
  8905. (synopsis "Numpy clone in Common Lisp")
  8906. (description
  8907. "This package is a Python Numpy clone implemented in pure Common Lisp.")
  8908. (license license:lgpl3+))))
  8909. (define-public cl-numcl
  8910. (sbcl-package->cl-source-package sbcl-numcl))
  8911. (define-public ecl-numcl
  8912. (sbcl-package->ecl-package sbcl-numcl))
  8913. (define-public sbcl-pzmq
  8914. (let ((commit "6f7b2ca02c23ea53510a9b0e0f181d5364ce9d32")
  8915. (revision "2"))
  8916. (package
  8917. (name "sbcl-pzmq")
  8918. (version (git-version "0.0.0" revision commit))
  8919. (source
  8920. (origin
  8921. (method git-fetch)
  8922. (uri (git-reference
  8923. (url "https://github.com/orivej/pzmq")
  8924. (commit commit)))
  8925. (file-name (git-file-name name version))
  8926. (sha256
  8927. (base32 "19mdhxhzzghlmff1fic4chg5iz0psglkim09z6dgpijm26biny05"))))
  8928. (build-system asdf-build-system/sbcl)
  8929. (native-inputs
  8930. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  8931. ("fiveam" ,sbcl-fiveam)
  8932. ("let-plus" ,sbcl-let-plus)))
  8933. (inputs
  8934. `(("cffi" ,sbcl-cffi)
  8935. ("zeromq" ,zeromq)))
  8936. (arguments
  8937. `(#:phases (modify-phases %standard-phases
  8938. (add-after 'unpack 'fix-paths
  8939. (lambda* (#:key inputs #:allow-other-keys)
  8940. (substitute* "c-api.lisp"
  8941. (("\"libzmq")
  8942. (string-append "\""
  8943. (assoc-ref inputs "zeromq")
  8944. "/lib/libzmq")))
  8945. #t)))))
  8946. (synopsis "Common Lisp bindings for the ZeroMQ library")
  8947. (description "This Common Lisp library provides bindings for the ZeroMQ
  8948. lightweight messaging kernel.")
  8949. (home-page "https://github.com/orivej/pzmq")
  8950. (license license:unlicense))))
  8951. (define-public cl-pzmq
  8952. (sbcl-package->cl-source-package sbcl-pzmq))
  8953. (define-public ecl-pzmq
  8954. (sbcl-package->ecl-package sbcl-pzmq))
  8955. (define-public sbcl-clss
  8956. (let ((revision "1")
  8957. (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
  8958. (package
  8959. (name "sbcl-clss")
  8960. (version (git-version "0.3.1" revision commit))
  8961. (source
  8962. (origin
  8963. (method git-fetch)
  8964. (uri
  8965. (git-reference
  8966. (url "https://github.com/Shinmera/clss")
  8967. (commit commit)))
  8968. (sha256
  8969. (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
  8970. (file-name (git-file-name name version))))
  8971. (inputs
  8972. (list sbcl-array-utils sbcl-plump))
  8973. (build-system asdf-build-system/sbcl)
  8974. (synopsis "DOM tree searching engine based on CSS selectors")
  8975. (description "CLSS is a DOM traversal engine based on CSS
  8976. selectors. It makes use of the Plump-DOM and is used by lQuery.")
  8977. (home-page "https://github.com/Shinmera/clss")
  8978. (license license:zlib))))
  8979. (define-public cl-clss
  8980. (sbcl-package->cl-source-package sbcl-clss))
  8981. (define-public ecl-clss
  8982. (sbcl-package->ecl-package sbcl-clss))
  8983. (define-public sbcl-lquery
  8984. (let ((revision "1")
  8985. (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
  8986. (package
  8987. (name "sbcl-lquery")
  8988. (version (git-version "3.2.1" revision commit))
  8989. (source
  8990. (origin
  8991. (method git-fetch)
  8992. (uri
  8993. (git-reference
  8994. (url "https://github.com/Shinmera/lquery")
  8995. (commit commit)))
  8996. (sha256
  8997. (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
  8998. (file-name (git-file-name name version))))
  8999. (native-inputs
  9000. (list sbcl-fiveam))
  9001. (inputs
  9002. (list sbcl-array-utils sbcl-form-fiddle sbcl-plump sbcl-clss))
  9003. (build-system asdf-build-system/sbcl)
  9004. (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
  9005. (description "@code{lQuery} is a DOM manipulation library written in
  9006. Common Lisp, inspired by and based on the jQuery syntax and
  9007. functions. It uses Plump and CLSS as DOM and selector engines. The
  9008. main idea behind lQuery is to provide a simple interface for crawling
  9009. and modifying HTML sites, as well as to allow for an alternative
  9010. approach to templating.")
  9011. (home-page "https://github.com/Shinmera/lquery")
  9012. (license license:zlib))))
  9013. (define-public cl-lquery
  9014. (sbcl-package->cl-source-package sbcl-lquery))
  9015. (define-public ecl-lquery
  9016. (sbcl-package->ecl-package sbcl-lquery))
  9017. (define-public sbcl-cl-mysql
  9018. (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
  9019. (revision "1"))
  9020. (package
  9021. (name "sbcl-cl-mysql")
  9022. (version (git-version "0.1" revision commit))
  9023. (source
  9024. (origin
  9025. (method git-fetch)
  9026. (uri (git-reference
  9027. (url "https://github.com/hackinghat/cl-mysql")
  9028. (commit commit)))
  9029. (file-name (git-file-name name version))
  9030. (sha256
  9031. (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
  9032. (build-system asdf-build-system/sbcl)
  9033. (native-inputs
  9034. (list sbcl-stefil))
  9035. (inputs
  9036. `(("cffi" ,sbcl-cffi)
  9037. ("mariadb-lib" ,mariadb "lib")))
  9038. (arguments
  9039. `(#:tests? #f ; TODO: Tests require a running server
  9040. #:phases
  9041. (modify-phases %standard-phases
  9042. (add-after 'unpack 'fix-paths
  9043. (lambda* (#:key inputs #:allow-other-keys)
  9044. (substitute* "system.lisp"
  9045. (("libmysqlclient_r" all)
  9046. (string-append (assoc-ref inputs "mariadb-lib")
  9047. "/lib/"
  9048. all)))
  9049. #t)))))
  9050. (synopsis "Common Lisp wrapper for MySQL")
  9051. (description
  9052. "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
  9053. (home-page "http://www.hackinghat.com/index.php/cl-mysql")
  9054. (license license:expat))))
  9055. (define-public cl-mysql
  9056. (sbcl-package->cl-source-package sbcl-cl-mysql))
  9057. (define-public ecl-cl-mysql
  9058. (sbcl-package->ecl-package sbcl-cl-mysql))
  9059. (define-public sbcl-postmodern
  9060. (package
  9061. (name "sbcl-postmodern")
  9062. (version "1.32.9")
  9063. (source
  9064. (origin
  9065. (method git-fetch)
  9066. (uri (git-reference
  9067. (url "https://github.com/marijnh/Postmodern")
  9068. (commit (string-append "v" version))))
  9069. (file-name (git-file-name name version))
  9070. (sha256
  9071. (base32 "137jci4hn4vlxf48y39k0di27kc89kvxy3brmn3vl9xq56sy6mhz"))))
  9072. (build-system asdf-build-system/sbcl)
  9073. (native-inputs
  9074. (list sbcl-fiveam))
  9075. (inputs
  9076. `(("alexandria" ,sbcl-alexandria)
  9077. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  9078. ("cl-base64" ,sbcl-cl-base64)
  9079. ("cl-unicode" ,sbcl-cl-unicode)
  9080. ("closer-mop" ,sbcl-closer-mop)
  9081. ("global-vars" ,sbcl-global-vars)
  9082. ("ironclad" ,sbcl-ironclad)
  9083. ("local-time" ,sbcl-local-time)
  9084. ("md5" ,sbcl-md5)
  9085. ("split-sequence" ,sbcl-split-sequence)
  9086. ("uax-15" ,sbcl-uax-15)
  9087. ("usocket" ,sbcl-usocket)))
  9088. (arguments
  9089. ;; TODO: (Sharlatan-20210114T171037+0000) tests still failing but on other
  9090. ;; step, some functionality in `local-time' prevents passing tests.
  9091. ;; Error:
  9092. ;;
  9093. ;; Can't create directory
  9094. ;; /gnu/store
  9095. ;; /4f47agf1kyiz057ppy6x5p98i7mcbfsv-sbcl-local-time-1.0.6-2.a177eb9
  9096. ;; /lib/common-lisp/sbcl/local-time/src/integration/
  9097. ;;
  9098. ;; NOTE: (Sharlatan-20210124T191940+0000): When set env HOME to /tmp above
  9099. ;; issue is resolved but it required live test database to connect to now.
  9100. ;; Keep tests switched off.
  9101. `(#:tests? #f
  9102. #:asd-systems '("cl-postgres"
  9103. "s-sql"
  9104. "postmodern"
  9105. "simple-date"
  9106. "simple-date/postgres-glue")))
  9107. (synopsis "Common Lisp library for interacting with PostgreSQL")
  9108. (description
  9109. "@code{postmodern} is a Common Lisp library for interacting with
  9110. PostgreSQL databases. It provides the following features:
  9111. @itemize
  9112. @item Efficient communication with the database server without need for
  9113. foreign libraries.
  9114. @item Support for UTF-8 on Unicode-aware Lisp implementations.
  9115. @item A syntax for mixing SQL and Lisp code.
  9116. @item Convenient support for prepared statements and stored procedures.
  9117. @item A metaclass for simple database-access objects.
  9118. @end itemize\n
  9119. This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date
  9120. @code{SIMPLE-DATE} is a very basic implementation of date and time objects, used
  9121. to support storing and retrieving time-related SQL types. It is not loaded by
  9122. default and you can use local-time (which has support for timezones) instead.
  9123. @code{S-SQL} is used to compile s-expressions to strings of SQL code, escaping
  9124. any Lisp values inside, and doing as much as possible of the work at compile
  9125. time.
  9126. @code{CL-POSTGRES} is the low-level library used for interfacing with a PostgreSQL
  9127. server over a socket.
  9128. @code{POSTMODERN} itself is a wrapper around these packages and provides higher
  9129. level functions, a very simple data access object that can be mapped directly to
  9130. database tables and some convient utilities. It then tries to put all these
  9131. things together into a convenient programming interface")
  9132. (home-page "https://marijnhaverbeke.nl/postmodern/")
  9133. (license license:zlib)))
  9134. (define-public cl-postmodern
  9135. (sbcl-package->cl-source-package sbcl-postmodern))
  9136. (define-public ecl-postmodern
  9137. (package
  9138. (inherit (sbcl-package->ecl-package sbcl-postmodern))
  9139. (arguments
  9140. `(#:tests? #f
  9141. #:asd-systems '("cl-postgres"
  9142. "s-sql"
  9143. "postmodern"
  9144. "simple-date"
  9145. "simple-date/postgres-glue")
  9146. #:phases
  9147. (modify-phases %standard-phases
  9148. (add-after 'unpack 'fix-build
  9149. (lambda _
  9150. (substitute* "cl-postgres.asd"
  9151. ((":or :sbcl :allegro :ccl :clisp" all)
  9152. (string-append all " :ecl")))
  9153. #t)))))))
  9154. (define-public sbcl-db3
  9155. (let ((commit "38e5ad35f025769fb7f8dcdc6e56df3e8efd8e6d")
  9156. (revision "1"))
  9157. (package
  9158. (name "sbcl-db3")
  9159. (version (git-version "0.0.0" revision commit))
  9160. (source
  9161. (origin
  9162. (method git-fetch)
  9163. (uri (git-reference
  9164. (url "https://github.com/dimitri/cl-db3")
  9165. (commit commit)))
  9166. (file-name (git-file-name "cl-db3" version))
  9167. (sha256
  9168. (base32 "1i7j0mlri6kbklcx1lsm464s8kmyhhij5c4xh4aybrw8m4ixn1s5"))))
  9169. (build-system asdf-build-system/sbcl)
  9170. (home-page "https://github.com/dimitri/cl-db3")
  9171. (synopsis "Common Lisp library to read dBase III database files")
  9172. (description
  9173. "This is a Common Lisp library for processing data found in dBase III
  9174. database files (dbf and db3 files).")
  9175. (license license:public-domain))))
  9176. (define-public ecl-db3
  9177. (sbcl-package->ecl-package sbcl-db3))
  9178. (define-public cl-db3
  9179. (sbcl-package->cl-source-package sbcl-db3))
  9180. (define-public sbcl-dbi
  9181. (let ((commit "7ba050dea8d137c1f85b7e704d4fc945104bf283")
  9182. (revision "1"))
  9183. (package
  9184. (name "sbcl-dbi")
  9185. (version (git-version "0.9.5" revision commit))
  9186. (source
  9187. (origin
  9188. (method git-fetch)
  9189. (uri (git-reference
  9190. (url "https://github.com/fukamachi/cl-dbi")
  9191. (commit commit)))
  9192. (file-name (git-file-name "cl-dbi" version))
  9193. (sha256
  9194. (base32 "0qkpsf8w7ig6chbf4r7j1j7fwa6kpi58ij4hbcxpa4irqdan8s9f"))))
  9195. (build-system asdf-build-system/sbcl)
  9196. (native-inputs
  9197. `(("alexandria" ,sbcl-alexandria)
  9198. ("rove" ,sbcl-rove)
  9199. ("trivial-types" ,sbcl-trivial-types)))
  9200. (inputs
  9201. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  9202. ("cl-mysql" ,sbcl-cl-mysql)
  9203. ("cl-sqlite" ,sbcl-cl-sqlite)
  9204. ("closer-mop" ,sbcl-closer-mop)
  9205. ("postmodern" ,sbcl-postmodern)
  9206. ("split-sequence" ,sbcl-split-sequence)
  9207. ("trivial-garbage" ,sbcl-trivial-garbage)))
  9208. (arguments
  9209. `(#:asd-systems '("dbi"
  9210. "dbd-mysql"
  9211. "dbd-postgres"
  9212. "dbd-sqlite3")))
  9213. (synopsis "Database independent interface for Common Lisp")
  9214. (description
  9215. "@code{dbi} is a Common Lisp library providing a database independent
  9216. interface for MySQL, PostgreSQL and SQLite.")
  9217. (home-page "https://github.com/fukamachi/cl-dbi")
  9218. (license license:llgpl))))
  9219. (define-public cl-dbi
  9220. (sbcl-package->cl-source-package sbcl-dbi))
  9221. (define-public ecl-dbi
  9222. (sbcl-package->ecl-package sbcl-dbi))
  9223. (define-public sbcl-uffi
  9224. (package
  9225. (name "sbcl-uffi")
  9226. (version "2.1.2")
  9227. (source
  9228. (origin
  9229. (method git-fetch)
  9230. (uri (git-reference
  9231. (url "http://git.kpe.io/uffi.git")
  9232. (commit (string-append "v" version))))
  9233. (file-name (git-file-name name version))
  9234. (sha256
  9235. (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
  9236. (build-system asdf-build-system/sbcl)
  9237. (arguments
  9238. `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
  9239. #:asd-files '("uffi.asd")
  9240. #:phases
  9241. (modify-phases %standard-phases
  9242. (add-after 'unpack 'fix-permissions
  9243. (lambda _
  9244. (make-file-writable "doc/html.tar.gz")
  9245. #t)))))
  9246. (synopsis "Universal foreign function library for Common Lisp")
  9247. (description
  9248. "UFFI provides a universal foreign function interface (FFI)
  9249. for Common Lisp.")
  9250. (home-page "http://quickdocs.org/uffi/")
  9251. (license license:llgpl)))
  9252. (define-public cl-uffi
  9253. (package
  9254. (inherit (sbcl-package->cl-source-package sbcl-uffi))
  9255. (arguments
  9256. `(#:phases
  9257. ;; asdf-build-system/source has its own phases and does not inherit
  9258. ;; from asdf-build-system/sbcl phases.
  9259. (modify-phases %standard-phases/source
  9260. ;; Already done in SBCL package.
  9261. (delete 'reset-gzip-timestamps))))))
  9262. (define-public sbcl-clsql
  9263. (package
  9264. (name "sbcl-clsql")
  9265. (version "6.7.0")
  9266. (source
  9267. (origin
  9268. (method git-fetch)
  9269. (uri (git-reference
  9270. (url "http://git.kpe.io/clsql.git")
  9271. (commit (string-append "v" version))))
  9272. (file-name (git-file-name name version))
  9273. (sha256
  9274. (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
  9275. (snippet
  9276. '(begin
  9277. ;; Remove precompiled libraries.
  9278. (delete-file "db-mysql/clsql_mysql.dll")
  9279. (delete-file "uffi/clsql_uffi.dll")
  9280. (delete-file "uffi/clsql_uffi.lib")
  9281. #t))))
  9282. (build-system asdf-build-system/sbcl)
  9283. (native-inputs
  9284. `(("rt" ,sbcl-rt)))
  9285. (inputs
  9286. `(("cffi" ,sbcl-cffi)
  9287. ("md5" ,sbcl-md5)
  9288. ("mysql" ,mysql)
  9289. ("postgresql" ,postgresql)
  9290. ("postmodern" ,sbcl-postmodern)
  9291. ("sqlite" ,sqlite)
  9292. ("uffi" ,sbcl-uffi)
  9293. ("zlib" ,zlib)))
  9294. (arguments
  9295. `(#:asd-files '("clsql.asd"
  9296. "clsql-uffi.asd"
  9297. "clsql-sqlite3.asd"
  9298. "clsql-postgresql.asd"
  9299. "clsql-postgresql-socket3.asd"
  9300. "clsql-mysql.asd")
  9301. #:asd-systems '("clsql"
  9302. "clsql-sqlite3"
  9303. "clsql-postgresql"
  9304. "clsql-postgresql-socket3"
  9305. "clsql-mysql")
  9306. #:phases
  9307. (modify-phases %standard-phases
  9308. (add-after 'unpack 'fix-permissions
  9309. (lambda _
  9310. (make-file-writable "doc/html.tar.gz")
  9311. #t))
  9312. (add-after 'unpack 'fix-build
  9313. (lambda _
  9314. (substitute* "clsql-uffi.asd"
  9315. (("\\(:version uffi \"2.0\"\\)")
  9316. "uffi"))
  9317. (substitute* "db-postgresql/postgresql-api.lisp"
  9318. (("\\(data :cstring\\)")
  9319. "(data :string)"))
  9320. #t))
  9321. (add-after 'unpack 'fix-paths
  9322. (lambda* (#:key inputs outputs #:allow-other-keys)
  9323. (substitute* "db-sqlite3/sqlite3-loader.lisp"
  9324. (("libsqlite3")
  9325. (string-append (assoc-ref inputs "sqlite")
  9326. "/lib/libsqlite3")))
  9327. (substitute* "db-postgresql/postgresql-loader.lisp"
  9328. (("libpq")
  9329. (string-append (assoc-ref inputs "postgresql")
  9330. "/lib/libpq")))
  9331. (let ((lib (string-append "#p\""
  9332. (assoc-ref outputs "out")
  9333. "/lib/\"")))
  9334. (substitute* "clsql-mysql.asd"
  9335. (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
  9336. lib))
  9337. (substitute* "db-mysql/mysql-loader.lisp"
  9338. (("libmysqlclient" all)
  9339. (string-append (assoc-ref inputs "mysql") "/lib/" all))
  9340. (("clsql-mysql-system::\\*library-file-dir\\*")
  9341. lib)))
  9342. #t))
  9343. (add-before 'build 'build-helper-library
  9344. (lambda* (#:key inputs outputs #:allow-other-keys)
  9345. (let* ((mysql (assoc-ref inputs "mysql"))
  9346. (inc-dir (string-append mysql "/include/mysql"))
  9347. (lib-dir (string-append mysql "/lib"))
  9348. (shared-lib-dir (string-append (assoc-ref outputs "out")
  9349. "/lib"))
  9350. (shared-lib (string-append shared-lib-dir
  9351. "/clsql_mysql.so")))
  9352. (mkdir-p shared-lib-dir)
  9353. (invoke "gcc" "-fPIC" "-shared"
  9354. "-I" inc-dir
  9355. "db-mysql/clsql_mysql.c"
  9356. "-Wl,-soname=clsql_mysql"
  9357. "-L" lib-dir "-lmysqlclient" "-lz"
  9358. "-o" shared-lib)
  9359. #t)))
  9360. (add-after 'unpack 'fix-tests
  9361. (lambda _
  9362. (substitute* "clsql.asd"
  9363. (("clsql-tests :force t")
  9364. "clsql-tests"))
  9365. #t)))))
  9366. (synopsis "Common Lisp SQL Interface library")
  9367. (description
  9368. "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
  9369. Xanalys CommonSQL interface for Lispworks. It provides low-level database
  9370. interfaces as well as a functional and an object oriented interface.")
  9371. (home-page "http://clsql.kpe.io/")
  9372. (license license:llgpl)))
  9373. (define-public cl-clsql
  9374. (package
  9375. (inherit (sbcl-package->cl-source-package sbcl-clsql))
  9376. (native-inputs
  9377. `(("rt" ,cl-rt)))
  9378. (inputs
  9379. (list mysql postgresql sqlite zlib))
  9380. (propagated-inputs
  9381. `(("cffi" ,cl-cffi)
  9382. ("md5" ,cl-md5)
  9383. ("postmodern" ,cl-postmodern)
  9384. ("uffi" ,cl-uffi)))
  9385. (arguments
  9386. `(#:phases
  9387. ;; asdf-build-system/source has its own phases and does not inherit
  9388. ;; from asdf-build-system/sbcl phases.
  9389. (modify-phases %standard-phases/source
  9390. (add-after 'unpack 'fix-permissions
  9391. (lambda _
  9392. (make-file-writable "doc/html.tar.gz")
  9393. #t)))))))
  9394. (define-public ecl-clsql
  9395. (let ((pkg (sbcl-package->ecl-package sbcl-clsql)))
  9396. (package
  9397. (inherit pkg)
  9398. (inputs
  9399. (alist-delete "uffi" (package-inputs pkg)))
  9400. (arguments
  9401. (substitute-keyword-arguments (package-arguments pkg)
  9402. ((#:asd-files asd-files '())
  9403. `(cons "clsql-cffi.asd" ,asd-files)))))))
  9404. (define-public sbcl-sycamore
  9405. (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
  9406. (package
  9407. (name "sbcl-sycamore")
  9408. (version "0.0.20120604")
  9409. (source
  9410. (origin
  9411. (method git-fetch)
  9412. (uri (git-reference
  9413. (url "https://github.com/ndantam/sycamore/")
  9414. (commit commit)))
  9415. (file-name (git-file-name name version))
  9416. (sha256
  9417. (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
  9418. (build-system asdf-build-system/sbcl)
  9419. (inputs
  9420. (list sbcl-alexandria sbcl-cl-ppcre))
  9421. (synopsis "Purely functional data structure library in Common Lisp")
  9422. (description
  9423. "Sycamore is a fast, purely functional data structure library in Common Lisp.
  9424. If features:
  9425. @itemize
  9426. @item Fast, purely functional weight-balanced binary trees.
  9427. @item Leaf nodes are simple-vectors, greatly reducing tree height.
  9428. @item Interfaces for tree Sets and Maps (dictionaries).
  9429. @item Ropes.
  9430. @item Purely functional pairing heaps.
  9431. @item Purely functional amortized queue.
  9432. @end itemize\n")
  9433. (home-page "http://ndantam.github.io/sycamore/")
  9434. (license license:bsd-3))))
  9435. (define-public cl-sycamore
  9436. (sbcl-package->cl-source-package sbcl-sycamore))
  9437. (define-public ecl-sycamore
  9438. (sbcl-package->ecl-package sbcl-sycamore))
  9439. (define-public sbcl-funds
  9440. (let ((commit "39d425818876b898c20780a678803df506df8424")
  9441. (revision "2"))
  9442. (package
  9443. (name "sbcl-funds")
  9444. (version (git-version "1" revision commit))
  9445. (source
  9446. (origin
  9447. (method git-fetch)
  9448. (uri (git-reference
  9449. (url "https://github.com/charJe/funds")
  9450. (commit commit)))
  9451. (file-name (git-file-name name version))
  9452. (sha256
  9453. (base32 "13y1jhvnpzrs9daz6f3z67w6h2y21ggb10j3j4vnc5p3m8i7ps4p"))))
  9454. (build-system asdf-build-system/sbcl)
  9455. (synopsis "Purely functional data structure library in Common Lisp")
  9456. (description
  9457. "Funds provides portable, purely functional data structures in Common
  9458. Lisp. It includes tree based implementations for Array, Hash, Queue, Stack, and
  9459. Heap.")
  9460. (home-page "https://common-lisp.net/project/funds/")
  9461. (license license:asl2.0))))
  9462. (define-public cl-funds
  9463. (sbcl-package->cl-source-package sbcl-funds))
  9464. (define-public ecl-funds
  9465. (sbcl-package->ecl-package sbcl-funds))
  9466. (define-public sbcl-trivial-package-local-nicknames
  9467. (package
  9468. (name "sbcl-trivial-package-local-nicknames")
  9469. (version "0.2")
  9470. (home-page "https://github.com/phoe/trivial-package-local-nicknames")
  9471. (source
  9472. (origin
  9473. (method git-fetch)
  9474. (uri (git-reference
  9475. (url home-page)
  9476. (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
  9477. (file-name (git-file-name name version))
  9478. (sha256
  9479. (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
  9480. (build-system asdf-build-system/sbcl)
  9481. (synopsis "Common Lisp compatibility library for package local nicknames")
  9482. (description
  9483. "This library is a portable compatibility layer around package local nicknames (PLN).
  9484. This was done so there is a portability library for the PLN API not included
  9485. in DEFPACKAGE.")
  9486. (license license:unlicense)))
  9487. (define-public cl-trivial-package-local-nicknames
  9488. (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
  9489. (define-public ecl-trivial-package-local-nicknames
  9490. (sbcl-package->ecl-package sbcl-trivial-package-local-nicknames))
  9491. (define-public sbcl-enchant
  9492. (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
  9493. (package
  9494. (name "sbcl-enchant")
  9495. (version (git-version "0.0.0" "1" commit))
  9496. (home-page "https://github.com/tlikonen/cl-enchant")
  9497. (source
  9498. (origin
  9499. (method git-fetch)
  9500. (uri (git-reference
  9501. (url home-page)
  9502. (commit commit)))
  9503. (file-name (git-file-name name version))
  9504. (sha256
  9505. (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
  9506. (build-system asdf-build-system/sbcl)
  9507. (inputs
  9508. `(("enchant" ,enchant)
  9509. ("cffi" ,sbcl-cffi)))
  9510. (arguments
  9511. `(#:phases
  9512. (modify-phases %standard-phases
  9513. (add-after 'unpack 'fix-paths
  9514. (lambda* (#:key inputs #:allow-other-keys)
  9515. (substitute* "load-enchant.lisp"
  9516. (("libenchant")
  9517. (string-append
  9518. (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
  9519. (synopsis "Common Lisp interface for the Enchant spell-checker library")
  9520. (description
  9521. "Enchant is a Common Lisp interface for the Enchant spell-checker
  9522. library. The Enchant library is a generic spell-checker library which uses
  9523. other spell-checkers transparently as back-end. The library supports the
  9524. multiple checkers, including Aspell and Hunspell.")
  9525. (license license:public-domain))))
  9526. (define-public cl-enchant
  9527. (sbcl-package->cl-source-package sbcl-enchant))
  9528. (define-public ecl-enchant
  9529. (sbcl-package->ecl-package sbcl-enchant))
  9530. (define-public sbcl-cl-change-case
  9531. (let ((commit "45c70b601125889689e0c1c37d7e727a3a0af022")
  9532. (revision "1"))
  9533. (package
  9534. (name "sbcl-cl-change-case")
  9535. (version (git-version "0.2.0" revision commit))
  9536. (home-page "https://github.com/rudolfochrist/cl-change-case")
  9537. (source
  9538. (origin
  9539. (method git-fetch)
  9540. (uri (git-reference
  9541. (url home-page)
  9542. (commit commit)))
  9543. (file-name (git-file-name "cl-change-case" version))
  9544. (sha256
  9545. (base32 "0qmk341zzcsbf8sq0w9ix3r080zg4ri6vzxym63lhdjfzwz3y8if"))))
  9546. (build-system asdf-build-system/sbcl)
  9547. (inputs
  9548. (list sbcl-cl-ppcre sbcl-cl-ppcre-unicode))
  9549. (native-inputs
  9550. (list sbcl-fiveam))
  9551. (synopsis
  9552. "Convert Common Lisp strings between camelCase, PascalCase and more")
  9553. (description
  9554. "@code{cl-change-case} is a library to convert strings between
  9555. camelCase, PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
  9556. (license license:llgpl))))
  9557. (define-public cl-change-case
  9558. (sbcl-package->cl-source-package sbcl-cl-change-case))
  9559. (define-public ecl-cl-change-case
  9560. (sbcl-package->ecl-package sbcl-cl-change-case))
  9561. (define-public sbcl-modularize
  9562. (let ((commit "86c5d9a11fbd2df9f0f03ac10b5d71837c8934ba")
  9563. (revision "1"))
  9564. (package
  9565. (name "sbcl-modularize")
  9566. (version (git-version "1.0.0" revision commit))
  9567. (source
  9568. (origin
  9569. (method git-fetch)
  9570. (uri (git-reference
  9571. (url "https://github.com/Shinmera/modularize")
  9572. (commit commit)))
  9573. (file-name (git-file-name name version))
  9574. (sha256
  9575. (base32 "1zys29rfkb649rkgl3snxhajk8d5yf7ryxkrwy020kwdh7zdsg7d"))))
  9576. (build-system asdf-build-system/sbcl)
  9577. (arguments
  9578. `(#:test-asd-file "modularize-test-module.asd"
  9579. #:asd-files '("modularize.asd" "modularize-test-module.asd")
  9580. #:asd-systems '("modularize" "modularize-test-module")))
  9581. (inputs
  9582. `(("documentation-utils" ,sbcl-documentation-utils)
  9583. ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)))
  9584. (home-page "https://shinmera.github.io/modularize/")
  9585. (synopsis "Common Lisp modularization framework")
  9586. (description
  9587. "@code{MODULARIZE} is an attempt at providing a common interface to
  9588. segregate major application components. This is achieved by adding special
  9589. treatment to packages. Each module is a package that is specially registered,
  9590. which allows it to interact and co-exist with other modules in better ways. For
  9591. instance, by adding module definition options you can introduce mechanisms to
  9592. tie modules together in functionality, hook into each other and so on.")
  9593. (license license:zlib))))
  9594. (define-public ecl-modularize
  9595. (sbcl-package->ecl-package sbcl-modularize))
  9596. (define-public cl-modularize
  9597. (sbcl-package->cl-source-package sbcl-modularize))
  9598. (define-public sbcl-modularize-hooks
  9599. (let ((commit "e0348ed3ffd59a9ec31ca4ab28289e748bfbf96a")
  9600. (revision "1"))
  9601. (package
  9602. (name "sbcl-modularize-hooks")
  9603. (version (git-version "1.0.2" revision commit))
  9604. (source
  9605. (origin
  9606. (method git-fetch)
  9607. (uri (git-reference
  9608. (url "https://github.com/Shinmera/modularize-hooks")
  9609. (commit commit)))
  9610. (file-name (git-file-name "modularize-hooks" version))
  9611. (sha256
  9612. (base32 "12kjvin8hxidwkzfb7inqv5b6g5qzcssnj9wc497v2ixc56fqdz7"))))
  9613. (build-system asdf-build-system/sbcl)
  9614. (inputs
  9615. (list sbcl-closer-mop sbcl-lambda-fiddle sbcl-modularize
  9616. sbcl-trivial-arguments))
  9617. (home-page "https://shinmera.github.io/modularize-hooks/")
  9618. (synopsis "Generic hooks and triggers extension for Modularize")
  9619. (description
  9620. "This is a simple extension to @code{MODULARIZE} that allows modules to
  9621. define and trigger hooks, which other modules can hook on to.")
  9622. (license license:zlib))))
  9623. (define-public ecl-modularize-hooks
  9624. (sbcl-package->ecl-package sbcl-modularize-hooks))
  9625. (define-public cl-modularize-hooks
  9626. (sbcl-package->cl-source-package sbcl-modularize-hooks))
  9627. (define-public sbcl-modularize-interfaces
  9628. (let ((commit "96353657afb8c7aeba7ef5b51eb04c5ed3bcb6ef")
  9629. (revision "1"))
  9630. (package
  9631. (name "sbcl-modularize-interfaces")
  9632. (version (git-version "0.9.3" revision commit))
  9633. (source
  9634. (origin
  9635. (method git-fetch)
  9636. (uri (git-reference
  9637. (url "https://github.com/Shinmera/modularize-interfaces")
  9638. (commit commit)))
  9639. (file-name (git-file-name "modularize-interfaces" version))
  9640. (sha256
  9641. (base32 "0bjf4wy39cwf75m7vh0r7mmcchs09yz2lrbyap98hnq8blq70fhc"))))
  9642. (build-system asdf-build-system/sbcl)
  9643. (inputs
  9644. (list sbcl-lambda-fiddle sbcl-modularize sbcl-trivial-arguments
  9645. sbcl-trivial-indent))
  9646. (home-page "https://shinmera.github.io/modularize-interfaces/")
  9647. (synopsis "Programmatical interfaces extension for Modularize")
  9648. (description
  9649. "This is an extension to @code{MODULARIZE} that allows your application
  9650. to define interfaces in-code that serve both as a primary documentation and as
  9651. compliance control.")
  9652. (license license:zlib))))
  9653. (define-public ecl-modularize-interfaces
  9654. (sbcl-package->ecl-package sbcl-modularize-interfaces))
  9655. (define-public cl-modularize-interfaces
  9656. (sbcl-package->cl-source-package sbcl-modularize-interfaces))
  9657. (define-public sbcl-moptilities
  9658. (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
  9659. (package
  9660. (name "sbcl-moptilities")
  9661. (version (git-version "0.3.13" "1" commit))
  9662. (home-page "https://github.com/gwkkwg/moptilities/")
  9663. (source
  9664. (origin
  9665. (method git-fetch)
  9666. (uri (git-reference
  9667. (url home-page)
  9668. (commit commit)))
  9669. (file-name (git-file-name name version))
  9670. (sha256
  9671. (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
  9672. (build-system asdf-build-system/sbcl)
  9673. (inputs
  9674. `(("closer-mop" ,sbcl-closer-mop)))
  9675. (native-inputs
  9676. (list sbcl-lift))
  9677. (arguments
  9678. `(#:phases
  9679. (modify-phases %standard-phases
  9680. (add-after 'unpack 'fix-tests
  9681. (lambda _
  9682. (substitute* "lift-standard.config"
  9683. ((":relative-to lift-test")
  9684. ":relative-to moptilities-test"))
  9685. #t)))))
  9686. (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
  9687. (description
  9688. "MOP utilities provide a common interface between Lisps and make the
  9689. MOP easier to use.")
  9690. (license license:expat))))
  9691. (define-public cl-moptilities
  9692. (sbcl-package->cl-source-package sbcl-moptilities))
  9693. (define-public sbcl-osicat
  9694. (let ((commit "a45eb3b5826e9175f7c94ba97a00d6b4932f3163")
  9695. (revision "3"))
  9696. (package
  9697. (name "sbcl-osicat")
  9698. (version (git-version "0.7.0" revision commit))
  9699. (home-page "http://www.common-lisp.net/project/osicat/")
  9700. (source
  9701. (origin
  9702. (method git-fetch)
  9703. (uri (git-reference
  9704. (url "https://github.com/osicat/osicat")
  9705. (commit commit)))
  9706. (file-name (git-file-name "cl-osicat" version))
  9707. (sha256
  9708. (base32 "1ilag0b0xn97acc0m1q93vwp2y3md9a586858zfx04d8wpbvk8sz"))))
  9709. (build-system asdf-build-system/sbcl)
  9710. (inputs
  9711. (list sbcl-alexandria sbcl-cffi sbcl-trivial-features))
  9712. (native-inputs
  9713. (list sbcl-rt))
  9714. (synopsis "Operating system interface for Common Lisp")
  9715. (description
  9716. "Osicat is a lightweight operating system interface for Common Lisp on
  9717. Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
  9718. accompaniment to the standard ANSI facilities.")
  9719. (license license:expat))))
  9720. (define-public cl-osicat
  9721. (sbcl-package->cl-source-package sbcl-osicat))
  9722. (define-public ecl-osicat
  9723. (sbcl-package->ecl-package sbcl-osicat))
  9724. (define-public sbcl-clx-xembed
  9725. (let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
  9726. (revision "1"))
  9727. (package
  9728. (name "sbcl-clx-xembed")
  9729. (version (git-version "0.1" revision commit))
  9730. (home-page "https://github.com/laynor/clx-xembed")
  9731. (source
  9732. (origin
  9733. (method git-fetch)
  9734. (uri (git-reference
  9735. (url "https://github.com/laynor/clx-xembed")
  9736. (commit commit)))
  9737. (file-name (git-file-name name version))
  9738. (sha256
  9739. (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
  9740. (build-system asdf-build-system/sbcl)
  9741. (arguments
  9742. `(#:asd-systems '("xembed")))
  9743. (inputs
  9744. (list sbcl-clx))
  9745. (synopsis "CL(x) xembed protocol implementation")
  9746. (description "CL(x) xembed protocol implementation")
  9747. ;; MIT License
  9748. (license license:expat))))
  9749. (define-public cl-clx-xembed
  9750. (sbcl-package->cl-source-package sbcl-clx-xembed))
  9751. (define-public ecl-clx-xembed
  9752. (sbcl-package->ecl-package sbcl-clx-xembed))
  9753. (define-public sbcl-quantile-estimator
  9754. (package
  9755. (name "sbcl-quantile-estimator")
  9756. (version "0.0.1")
  9757. (source
  9758. (origin
  9759. (method git-fetch)
  9760. (uri (git-reference
  9761. (url "https://github.com/deadtrickster/quantile-estimator.cl")
  9762. (commit "84d0ea405d793f5e808c68c4ddaf25417b0ff8e5")))
  9763. (file-name (git-file-name name version))
  9764. (sha256
  9765. (base32
  9766. "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
  9767. (build-system asdf-build-system/sbcl)
  9768. (arguments
  9769. '(#:asd-files '("quantile-estimator.asd")))
  9770. (inputs
  9771. `(("alexandria" ,sbcl-alexandria)))
  9772. (home-page "https://github.com/deadtrickster/quantile-estimator.cl")
  9773. (synopsis
  9774. "Effective computation of biased quantiles over data streams")
  9775. (description
  9776. "Common Lisp implementation of Graham Cormode and S.
  9777. Muthukrishnan's Effective Computation of Biased Quantiles over Data
  9778. Streams in ICDE’05.")
  9779. (license license:expat)))
  9780. (define-public cl-quantile-estimator
  9781. (sbcl-package->cl-source-package sbcl-quantile-estimator))
  9782. (define-public ecl-quantile-estimator
  9783. (sbcl-package->ecl-package sbcl-quantile-estimator))
  9784. (define-public sbcl-prometheus
  9785. (package
  9786. (name "sbcl-prometheus")
  9787. (version "0.4.1")
  9788. (source
  9789. (origin
  9790. (method git-fetch)
  9791. (uri (git-reference
  9792. (url "https://github.com/deadtrickster/prometheus.cl")
  9793. (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
  9794. (file-name (git-file-name name version))
  9795. (sha256
  9796. (base32
  9797. "0fzczls2kfgdx18pja4lqxjrz72i583185d8nq0pb3s331hhzh0z"))))
  9798. (build-system asdf-build-system/sbcl)
  9799. (inputs
  9800. `(("alexandria" ,sbcl-alexandria)
  9801. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  9802. ("cffi" ,sbcl-cffi)
  9803. ("cl-fad" ,sbcl-cl-fad)
  9804. ("cl-ppcre" ,sbcl-cl-ppcre)
  9805. ("drakma" ,sbcl-drakma)
  9806. ("hunchentoot" ,sbcl-hunchentoot)
  9807. ("local-time" ,sbcl-local-time)
  9808. ("quantile-estimator" ,sbcl-quantile-estimator)
  9809. ("salza2" ,sbcl-salza2)
  9810. ("split-sequence" ,sbcl-split-sequence)
  9811. ("trivial-utf-8" ,sbcl-trivial-utf-8)))
  9812. (arguments
  9813. '(#:asd-files '("prometheus.asd"
  9814. "prometheus.collectors.sbcl.asd"
  9815. "prometheus.collectors.process.asd"
  9816. "prometheus.formats.text.asd"
  9817. "prometheus.exposers.hunchentoot.asd"
  9818. "prometheus.pushgateway.asd")
  9819. #:asd-systems '("prometheus"
  9820. "prometheus.collectors.sbcl"
  9821. "prometheus.collectors.process"
  9822. "prometheus.formats.text"
  9823. "prometheus.exposers.hunchentoot"
  9824. "prometheus.pushgateway")))
  9825. (home-page "https://github.com/deadtrickster/prometheus.cl")
  9826. (synopsis "Prometheus.io Common Lisp client")
  9827. (description "Prometheus.io Common Lisp client.")
  9828. (license license:expat)))
  9829. (define-public cl-prometheus
  9830. (sbcl-package->cl-source-package sbcl-prometheus))
  9831. (define-public ecl-prometheus
  9832. (sbcl-package->ecl-package sbcl-prometheus))
  9833. (define-public sbcl-uuid
  9834. (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
  9835. (package
  9836. (name "sbcl-uuid")
  9837. (version (git-version "2012.12.26" "1" commit))
  9838. (source
  9839. (origin
  9840. (method git-fetch)
  9841. (uri (git-reference
  9842. (url "https://github.com/dardoria/uuid")
  9843. (commit commit)))
  9844. (file-name (git-file-name name version))
  9845. (sha256
  9846. (base32
  9847. "0jnyp2kibcf5cwi60l6grjrj8wws9chasjvsw7xzwyym2lyid46f"))))
  9848. (build-system asdf-build-system/sbcl)
  9849. (inputs
  9850. (list sbcl-ironclad sbcl-trivial-utf-8))
  9851. (home-page "https://github.com/dardoria/uuid")
  9852. (synopsis
  9853. "Common Lisp implementation of UUIDs according to RFC4122")
  9854. (description
  9855. "Common Lisp implementation of UUIDs according to RFC4122.")
  9856. (license license:llgpl))))
  9857. (define-public cl-uuid
  9858. (sbcl-package->cl-source-package sbcl-uuid))
  9859. (define-public ecl-uuid
  9860. (sbcl-package->ecl-package sbcl-uuid))
  9861. (define-public sbcl-dissect
  9862. (let ((commit "cffd38479f0e64e805f167bbdb240b783ecc8d45"))
  9863. (package
  9864. (name "sbcl-dissect")
  9865. (version (git-version "1.0.0" "1" commit))
  9866. (source
  9867. (origin
  9868. (method git-fetch)
  9869. (uri (git-reference
  9870. (url "https://github.com/Shinmera/dissect")
  9871. (commit commit)))
  9872. (file-name (git-file-name name version))
  9873. (sha256
  9874. (base32
  9875. "0rmsjkgjl90gl6ssvgd60hb0d5diyhsiyypvw9hbc0ripvbmk5r5"))))
  9876. (build-system asdf-build-system/sbcl)
  9877. (inputs
  9878. (list sbcl-cl-ppcre))
  9879. (home-page "https://shinmera.github.io/dissect/")
  9880. (synopsis
  9881. "Introspection library for the call stack and restarts")
  9882. (description
  9883. "Dissect is a small Common Lisp library for introspecting the call stack
  9884. and active restarts.")
  9885. (license license:zlib))))
  9886. (define-public cl-dissect
  9887. (sbcl-package->cl-source-package sbcl-dissect))
  9888. (define-public ecl-dissect
  9889. (sbcl-package->ecl-package sbcl-dissect))
  9890. (define-public sbcl-exponential-backoff
  9891. (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f"))
  9892. (package
  9893. (name "sbcl-exponential-backoff")
  9894. (version (git-version "0" "1" commit))
  9895. (source
  9896. (origin
  9897. (method git-fetch)
  9898. (uri (git-reference
  9899. (url "https://github.com/death/exponential-backoff")
  9900. (commit commit)))
  9901. (file-name (git-file-name name version))
  9902. (sha256
  9903. (base32
  9904. "1389hm9hxv85s0125ja4js1bvh8ay4dsy9q1gaynjv27ynik6gmv"))))
  9905. (build-system asdf-build-system/sbcl)
  9906. (home-page "https://github.com/death/exponential-backoff")
  9907. (synopsis "Exponential backoff algorithm in Common Lisp")
  9908. (description
  9909. "An implementation of the exponential backoff algorithm in Common Lisp.
  9910. Inspired by the implementation found in Chromium. Read the header file to
  9911. learn about each of the parameters.")
  9912. (license license:expat))))
  9913. (define-public cl-exponential-backoff
  9914. (sbcl-package->cl-source-package sbcl-exponential-backoff))
  9915. (define-public ecl-exponential-backoff
  9916. (sbcl-package->ecl-package sbcl-exponential-backoff))
  9917. (define-public sbcl-sxql
  9918. (let ((commit "acdd183a4c38b4e0699a285f8a711c88f6b4302c"))
  9919. (package
  9920. (name "sbcl-sxql")
  9921. (version (git-version "0.1.0" "2" commit))
  9922. (source
  9923. (origin
  9924. (method git-fetch)
  9925. (uri (git-reference
  9926. (url "https://github.com/fukamachi/sxql")
  9927. (commit commit)))
  9928. (file-name (git-file-name "sqxl" version))
  9929. (sha256
  9930. (base32 "1i1crdsf2nbyxxpvjgrwmwpjxn6a4drbcmqs4q4shfi8zyap7vng"))))
  9931. (build-system asdf-build-system/sbcl)
  9932. (inputs
  9933. (list sbcl-alexandria
  9934. sbcl-cl-package-locks
  9935. sbcl-cl-syntax
  9936. sbcl-iterate
  9937. sbcl-optima
  9938. sbcl-split-sequence
  9939. sbcl-trivial-types))
  9940. (native-inputs
  9941. (list sbcl-prove))
  9942. (home-page "https://github.com/fukamachi/sxql")
  9943. (synopsis "SQL generator for Common Lisp")
  9944. (description "SQL generator for Common Lisp.")
  9945. (license license:bsd-3))))
  9946. (define-public cl-sxql
  9947. (sbcl-package->cl-source-package sbcl-sxql))
  9948. (define-public ecl-sxql
  9949. (sbcl-package->ecl-package sbcl-sxql))
  9950. (define-public sbcl-cl-ascii-table
  9951. (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2")
  9952. (revision "1"))
  9953. (package
  9954. (name "sbcl-cl-ascii-table")
  9955. (version (git-version "0.0.0" revision commit))
  9956. (source
  9957. (origin
  9958. (method git-fetch)
  9959. (uri (git-reference
  9960. (url "https://github.com/telephil/cl-ascii-table")
  9961. (commit commit)))
  9962. (file-name (git-file-name name version))
  9963. (sha256
  9964. (base32 "125fdif9sgl7k0ngjhxv0wjas2q27d075025hvj2rx1b1x948z4s"))))
  9965. (build-system asdf-build-system/sbcl)
  9966. (synopsis "Library to make ascii-art tables")
  9967. (description
  9968. "This is a Common Lisp library to present tabular data in ascii-art
  9969. tables.")
  9970. (home-page "https://github.com/telephil/cl-ascii-table")
  9971. (license license:expat))))
  9972. (define-public cl-ascii-table
  9973. (sbcl-package->cl-source-package sbcl-cl-ascii-table))
  9974. (define-public ecl-cl-ascii-table
  9975. (sbcl-package->ecl-package sbcl-cl-ascii-table))
  9976. (define-public sbcl-cl-rdkafka
  9977. (package
  9978. (name "sbcl-cl-rdkafka")
  9979. (version "1.1.0")
  9980. (source
  9981. (origin
  9982. (method git-fetch)
  9983. (uri (git-reference
  9984. (url "https://github.com/SahilKang/cl-rdkafka")
  9985. (commit (string-append "v" version))))
  9986. (file-name (git-file-name name version))
  9987. (sha256
  9988. (base32
  9989. "0z2g0k0xy8k1p9g93h8dy9wbygaq7ziwagm4yz93zk67mhc0b84v"))))
  9990. (build-system asdf-build-system/sbcl)
  9991. (arguments
  9992. `(#:tests? #f ; Attempts to connect to locally running Kafka
  9993. #:phases
  9994. (modify-phases %standard-phases
  9995. (add-after 'unpack 'fix-paths
  9996. (lambda* (#:key inputs #:allow-other-keys)
  9997. (substitute* "src/low-level/librdkafka-bindings.lisp"
  9998. (("librdkafka" all)
  9999. (string-append (assoc-ref inputs "librdkafka") "/lib/"
  10000. all))))))))
  10001. (inputs
  10002. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  10003. ("cffi" ,sbcl-cffi)
  10004. ("librdkafka" ,librdkafka)
  10005. ("lparallel" ,sbcl-lparallel)
  10006. ("trivial-garbage" ,sbcl-trivial-garbage)))
  10007. (home-page "https://github.com/SahilKang/cl-rdkafka")
  10008. (synopsis "Common Lisp client library for Apache Kafka")
  10009. (description "A Common Lisp client library for Apache Kafka.")
  10010. (license license:gpl3)))
  10011. (define-public cl-rdkafka
  10012. (sbcl-package->cl-source-package sbcl-cl-rdkafka))
  10013. (define-public ecl-cl-rdkafka
  10014. (sbcl-package->ecl-package sbcl-cl-rdkafka))
  10015. (define-public sbcl-acclimation
  10016. (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
  10017. (package
  10018. (name "sbcl-acclimation")
  10019. (version (git-version "0.0.0" "1" commit))
  10020. (source
  10021. (origin
  10022. (method git-fetch)
  10023. (uri (git-reference
  10024. (url "https://github.com/robert-strandh/Acclimation")
  10025. (commit commit)))
  10026. (file-name (git-file-name name version))
  10027. (sha256
  10028. (base32
  10029. "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
  10030. (build-system asdf-build-system/sbcl)
  10031. (home-page "https://github.com/robert-strandh/Acclimation")
  10032. (synopsis "Internationalization library for Common Lisp")
  10033. (description "This project is meant to provide tools for
  10034. internationalizing Common Lisp programs.
  10035. One important aspect of internationalization is of course the language used in
  10036. error messages, documentation strings, etc. But with this project we provide
  10037. tools for all other aspects of internationalization as well, including dates,
  10038. weight, temperature, names of physical quantitites, etc.")
  10039. (license license:bsd-2))))
  10040. (define-public cl-acclimation
  10041. (sbcl-package->cl-source-package sbcl-acclimation))
  10042. (define-public ecl-acclimation
  10043. (sbcl-package->ecl-package sbcl-acclimation))
  10044. (define-public sbcl-clump
  10045. (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
  10046. (package
  10047. (name "sbcl-clump")
  10048. (version (git-version "0.0.0" "1" commit))
  10049. (source
  10050. (origin
  10051. (method git-fetch)
  10052. (uri (git-reference
  10053. (url "https://github.com/robert-strandh/Clump")
  10054. (commit commit)))
  10055. (file-name (git-file-name name version))
  10056. (sha256
  10057. (base32
  10058. "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
  10059. (inputs
  10060. (list sbcl-acclimation))
  10061. (build-system asdf-build-system/sbcl)
  10062. (home-page "https://github.com/robert-strandh/Clump")
  10063. (synopsis "Collection of tree implementations for Common Lisp")
  10064. (description "The purpose of this library is to provide a collection of
  10065. implementations of trees.
  10066. In contrast to existing libraries such as cl-containers, it does not impose a
  10067. particular use for the trees. Instead, it aims for a stratified design,
  10068. allowing client code to choose between different levels of abstraction.
  10069. As a consequence of this policy, low-level interfaces are provided where
  10070. the concrete representation is exposed, but also high level interfaces
  10071. where the trees can be used as search trees or as trees that represent
  10072. sequences of objects.")
  10073. (license license:bsd-2))))
  10074. (define-public cl-clump
  10075. (sbcl-package->cl-source-package sbcl-clump))
  10076. (define-public ecl-clump
  10077. (sbcl-package->ecl-package sbcl-clump))
  10078. (define-public sbcl-cluffer
  10079. (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
  10080. (package
  10081. (name "sbcl-cluffer")
  10082. (version (git-version "0.0.0" "1" commit))
  10083. (source
  10084. (origin
  10085. (method git-fetch)
  10086. (uri (git-reference
  10087. (url "https://github.com/robert-strandh/cluffer")
  10088. (commit commit)))
  10089. (file-name (git-file-name name version))
  10090. (sha256
  10091. (base32
  10092. "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
  10093. (build-system asdf-build-system/sbcl)
  10094. (inputs
  10095. (list sbcl-acclimation sbcl-clump))
  10096. (home-page "https://github.com/robert-strandh/cluffer")
  10097. (synopsis "Common Lisp library providing a protocol for text-editor buffers")
  10098. (description "Cluffer is a library for representing the buffer of a text
  10099. editor. As such, it defines a set of CLOS protocols for client code to
  10100. interact with the buffer contents in various ways, and it supplies different
  10101. implementations of those protocols for different purposes.")
  10102. (license license:bsd-2))))
  10103. (define-public cl-cluffer
  10104. (sbcl-package->cl-source-package sbcl-cluffer))
  10105. (define-public ecl-cluffer
  10106. (sbcl-package->ecl-package sbcl-cluffer))
  10107. (define-public sbcl-cl-libsvm-format
  10108. (let ((commit "3300f84fd8d9f5beafc114f543f9d83417c742fb")
  10109. (revision "0"))
  10110. (package
  10111. (name "sbcl-cl-libsvm-format")
  10112. (version (git-version "0.1.0" revision commit))
  10113. (source
  10114. (origin
  10115. (method git-fetch)
  10116. (uri (git-reference
  10117. (url "https://github.com/masatoi/cl-libsvm-format")
  10118. (commit commit)))
  10119. (file-name (git-file-name name version))
  10120. (sha256
  10121. (base32
  10122. "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
  10123. (build-system asdf-build-system/sbcl)
  10124. (native-inputs
  10125. (list sbcl-prove))
  10126. (inputs
  10127. (list sbcl-alexandria))
  10128. (synopsis "LibSVM data format reader for Common Lisp")
  10129. (description
  10130. "This Common Lisp library provides a fast reader for data in LibSVM
  10131. format.")
  10132. (home-page "https://github.com/masatoi/cl-libsvm-format")
  10133. (license license:expat))))
  10134. (define-public cl-libsvm-format
  10135. (sbcl-package->cl-source-package sbcl-cl-libsvm-format))
  10136. (define-public ecl-cl-libsvm-format
  10137. (sbcl-package->ecl-package sbcl-cl-libsvm-format))
  10138. (define-public sbcl-cl-online-learning
  10139. (let ((commit "87fbef8a340219e853adb3a5bf44a0470da76964")
  10140. (revision "1"))
  10141. (package
  10142. (name "sbcl-cl-online-learning")
  10143. (version (git-version "0.5" revision commit))
  10144. (source
  10145. (origin
  10146. (method git-fetch)
  10147. (uri (git-reference
  10148. (url "https://github.com/masatoi/cl-online-learning")
  10149. (commit commit)))
  10150. (file-name (git-file-name "cl-online-learning" version))
  10151. (sha256
  10152. (base32
  10153. "1lfq04lnxivx59nq5dd02glyqsqzf3vdn4s9b8wnaln5fs8g2ph9"))))
  10154. (build-system asdf-build-system/sbcl)
  10155. (native-inputs
  10156. (list sbcl-prove))
  10157. (inputs
  10158. `(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
  10159. ("cl-store" ,sbcl-cl-store)))
  10160. (arguments
  10161. `(#:test-asd-file "cl-online-learning-test.asd"
  10162. #:asd-systems '("cl-online-learning-test"
  10163. "cl-online-learning")))
  10164. (home-page "https://github.com/masatoi/cl-online-learning")
  10165. (synopsis "Online Machine Learning for Common Lisp")
  10166. (description
  10167. "This library contains a collection of machine learning algorithms for
  10168. online linear classification written in Common Lisp.")
  10169. (license license:expat))))
  10170. (define-public cl-online-learning
  10171. (sbcl-package->cl-source-package sbcl-cl-online-learning))
  10172. (define-public ecl-cl-online-learning
  10173. (sbcl-package->ecl-package sbcl-cl-online-learning))
  10174. (define-public sbcl-cl-mpg123
  10175. (let ((commit "5f042c839d2ea4a2ff2a7b60c839d8633d64161d")
  10176. (revision "1"))
  10177. (package
  10178. (name "sbcl-cl-mpg123")
  10179. (version (git-version "1.0.0" revision commit))
  10180. (source
  10181. (origin
  10182. (method git-fetch)
  10183. (uri (git-reference
  10184. (url "https://github.com/Shirakumo/cl-mpg123")
  10185. (commit commit)))
  10186. (file-name (git-file-name "cl-mpg123" version))
  10187. (sha256
  10188. (base32 "1hl721xaczxck008ax2y3jpkm509ry1sg3lklh2k76764m3ndrjf"))
  10189. (modules '((guix build utils)))
  10190. (snippet
  10191. '(begin
  10192. ;; Remove bundled pre-compiled libraries.
  10193. (delete-file-recursively "static")
  10194. #t))))
  10195. (build-system asdf-build-system/sbcl)
  10196. (arguments
  10197. `(#:asd-files '("cl-mpg123.asd" "cl-mpg123-example.asd")
  10198. #:asd-systems '("cl-mpg123" "cl-mpg123-example")
  10199. #:phases
  10200. (modify-phases %standard-phases
  10201. (add-after 'unpack 'fix-paths
  10202. (lambda* (#:key inputs #:allow-other-keys)
  10203. (substitute* "low-level.lisp"
  10204. (("libmpg123.so" all)
  10205. (string-append (assoc-ref inputs "libmpg123")
  10206. "/lib/" all))))))))
  10207. (inputs
  10208. `(("cffi" ,sbcl-cffi)
  10209. ("cl-out123" ,sbcl-cl-out123)
  10210. ("documentation-utils" ,sbcl-documentation-utils)
  10211. ("libmpg123" ,mpg123)
  10212. ("trivial-features" ,sbcl-trivial-features)
  10213. ("trivial-garbage" ,sbcl-trivial-garbage)
  10214. ("verbose" ,sbcl-verbose)))
  10215. (home-page "https://shirakumo.github.io/cl-mpg123/")
  10216. (synopsis "Common Lisp bindings to libmpg123")
  10217. (description
  10218. "This is a bindings and wrapper library to @code{libmpg123} allowing for
  10219. convenient, extensive, and fast decoding of MPEG1/2/3 (most prominently mp3)
  10220. files.")
  10221. (license license:zlib))))
  10222. (define-public ecl-cl-mpg123
  10223. (sbcl-package->ecl-package sbcl-cl-mpg123))
  10224. (define-public cl-mpg123
  10225. (sbcl-package->cl-source-package sbcl-cl-mpg123))
  10226. (define-public sbcl-cl-out123
  10227. (let ((commit "6b58d3f8c2a28ad09059ac4c60fb3c781b9b421b")
  10228. (revision "1"))
  10229. (package
  10230. (name "sbcl-cl-out123")
  10231. (version (git-version "1.0.0" revision commit))
  10232. (source
  10233. (origin
  10234. (method git-fetch)
  10235. (uri (git-reference
  10236. (url "https://github.com/Shirakumo/cl-out123")
  10237. (commit commit)))
  10238. (file-name (git-file-name "cl-out123" version))
  10239. (sha256
  10240. (base32 "0mdwgfax6sq68wvdgjjp78i40ah7wqkpqnvaq8a1c509k7ghdgv1"))
  10241. (modules '((guix build utils)))
  10242. (snippet
  10243. '(begin
  10244. ;; Remove bundled pre-compiled libraries.
  10245. (delete-file-recursively "static")
  10246. #t))))
  10247. (build-system asdf-build-system/sbcl)
  10248. (arguments
  10249. `(#:phases
  10250. (modify-phases %standard-phases
  10251. (add-after 'unpack 'fix-paths
  10252. (lambda* (#:key inputs #:allow-other-keys)
  10253. (substitute* "low-level.lisp"
  10254. (("libout123.so" all)
  10255. (string-append (assoc-ref inputs "libout123")
  10256. "/lib/" all)))))
  10257. ;; NOTE: (Sharlatan-20210129T134529+0000): ECL package `ext' has no
  10258. ;; exported macro `without-interrupts' it's moved to `mp' package
  10259. ;; https://github.com/Shirakumo/cl-out123/issues/2
  10260. ;; https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/lsp/mp.lsp
  10261. (add-after 'unpack 'fix-ecl-package-name
  10262. (lambda _
  10263. (substitute* "wrapper.lisp"
  10264. (("ext:without-interrupts.*") "mp:without-interrupts\n"))
  10265. #t)))))
  10266. (inputs
  10267. `(("bordeaux-threads" ,sbcl-bordeaux-threads)
  10268. ("cffi" ,sbcl-cffi)
  10269. ("documentation-utils" ,sbcl-documentation-utils)
  10270. ("libout123" ,mpg123)
  10271. ("trivial-features" ,sbcl-trivial-features)
  10272. ("trivial-garbage" ,sbcl-trivial-garbage)))
  10273. (home-page "https://shirakumo.github.io/cl-out123/")
  10274. (synopsis "Common Lisp bindings to libout123")
  10275. (description
  10276. "This is a bindings library to @code{libout123} which allows easy
  10277. cross-platform audio playback.")
  10278. (license license:zlib))))
  10279. (define-public ecl-cl-out123
  10280. (sbcl-package->ecl-package sbcl-cl-out123))
  10281. (define-public cl-out123
  10282. (sbcl-package->cl-source-package sbcl-cl-out123))
  10283. (define-public sbcl-cl-random-forest
  10284. (let ((commit "fedb36ce99bb6f4d7e3a7dd6d8b058f331308f91")
  10285. (revision "1"))
  10286. (package
  10287. (name "sbcl-cl-random-forest")
  10288. (version (git-version "0.1" revision commit))
  10289. (source
  10290. (origin
  10291. (method git-fetch)
  10292. (uri (git-reference
  10293. (url "https://github.com/masatoi/cl-random-forest")
  10294. (commit commit)))
  10295. (file-name (git-file-name name version))
  10296. (sha256
  10297. (base32
  10298. "0wqh4dxy5hrvm14jgyfypwhdw35f24rsksid4blz5a6l2z16rlmq"))))
  10299. (build-system asdf-build-system/sbcl)
  10300. (native-inputs
  10301. `(("prove" ,sbcl-prove)
  10302. ("trivial-garbage" ,sbcl-trivial-garbage)))
  10303. (inputs
  10304. `(("alexandria" ,sbcl-alexandria)
  10305. ("cl-libsvm-format" ,sbcl-cl-libsvm-format)
  10306. ("cl-online-learning" ,sbcl-cl-online-learning)
  10307. ("lparallel" ,sbcl-lparallel)))
  10308. (arguments
  10309. `(#:tests? #f)) ; The tests download data from the Internet
  10310. (synopsis "Random Forest and Global Refinement for Common Lisp")
  10311. (description
  10312. "CL-random-forest is an implementation of Random Forest for multiclass
  10313. classification and univariate regression written in Common Lisp. It also
  10314. includes an implementation of Global Refinement of Random Forest.")
  10315. (home-page "https://github.com/masatoi/cl-random-forest")
  10316. (license license:expat))))
  10317. (define-public cl-random-forest
  10318. (sbcl-package->cl-source-package sbcl-cl-random-forest))
  10319. (define-public ecl-cl-random-forest
  10320. (sbcl-package->ecl-package sbcl-cl-random-forest))
  10321. (define-public sbcl-bordeaux-fft
  10322. (let ((commit "4a1f5600cae59bdabcb32de4ee2d7d73a9450d6e")
  10323. (revision "0"))
  10324. (package
  10325. (name "sbcl-bordeaux-fft")
  10326. (version (git-version "1.0.1" revision commit))
  10327. (source
  10328. (origin
  10329. (method git-fetch)
  10330. (uri (git-reference
  10331. (url "https://github.com/ahefner/bordeaux-fft")
  10332. (commit commit)))
  10333. (file-name (git-file-name name version))
  10334. (sha256
  10335. (base32 "0j584w6kq2k6r8lp2i14f9605rxhp3r15s33xs08iz1pndn6iwqf"))))
  10336. (build-system asdf-build-system/sbcl)
  10337. (home-page "http://vintage-digital.com/hefner/software/bordeaux-fft/")
  10338. (synopsis "Fast Fourier Transform for Common Lisp")
  10339. (description
  10340. "The Bordeaux-FFT library provides a reasonably efficient implementation
  10341. of the Fast Fourier Transform and its inverse for complex-valued inputs, in
  10342. portable Common Lisp.")
  10343. (license license:gpl2+))))
  10344. (define-public cl-bordeaux-fft
  10345. (sbcl-package->cl-source-package sbcl-bordeaux-fft))
  10346. (define-public ecl-bordeaux-fft
  10347. (sbcl-package->ecl-package sbcl-bordeaux-fft))
  10348. (define-public sbcl-napa-fft3
  10349. (let ((commit "f2d9614c7167da327c9ceebefb04ff6eae2d2236")
  10350. (revision "0"))
  10351. (package
  10352. (name "sbcl-napa-fft3")
  10353. (version (git-version "0.0.1" revision commit))
  10354. (source
  10355. (origin
  10356. (method git-fetch)
  10357. (uri (git-reference
  10358. (url "https://github.com/pkhuong/Napa-FFT3")
  10359. (commit commit)))
  10360. (file-name (git-file-name name version))
  10361. (sha256
  10362. (base32 "1hxjf599xgwm28gbryy7q96j9ys6hfszmv0qxpr5698hxnhknscp"))))
  10363. (build-system asdf-build-system/sbcl)
  10364. (home-page "https://github.com/pkhuong/Napa-FFT3")
  10365. (synopsis "Fast Fourier Transform routines in Common Lisp")
  10366. (description
  10367. "Napa-FFT3 provides Discrete Fourier Transform (DFT) routines, but also
  10368. buildings blocks to express common operations that involve DFTs: filtering,
  10369. convolutions, etc.")
  10370. (license license:bsd-3))))
  10371. (define-public cl-napa-fft3
  10372. (sbcl-package->cl-source-package sbcl-napa-fft3))
  10373. (define-public sbcl-cl-tga
  10374. (let ((commit "4dc2f7b8a259b9360862306640a07a23d4afaacc")
  10375. (revision "0"))
  10376. (package
  10377. (name "sbcl-cl-tga")
  10378. (version (git-version "0.0.0" revision commit))
  10379. (source
  10380. (origin
  10381. (method git-fetch)
  10382. (uri (git-reference
  10383. (url "https://github.com/fisxoj/cl-tga")
  10384. (commit commit)))
  10385. (file-name (git-file-name name version))
  10386. (sha256
  10387. (base32 "03k3npmn0xd3fd2m7vwxph82av2xrfb150imqrinlzqmzvz1v1br"))))
  10388. (build-system asdf-build-system/sbcl)
  10389. (home-page "https://github.com/fisxoj/cl-tga")
  10390. (synopsis "TGA file loader for Common Lisp")
  10391. (description
  10392. "Cl-tga was written to facilitate loading @emph{.tga} files into OpenGL
  10393. programs. It's a very simple library, and, at the moment, only supports
  10394. non-RLE encoded forms of the files.")
  10395. (license license:expat))))
  10396. (define-public cl-tga
  10397. (sbcl-package->cl-source-package sbcl-cl-tga))
  10398. (define-public ecl-cl-tga
  10399. (sbcl-package->ecl-package sbcl-cl-tga))
  10400. (define-public sbcl-com.gigamonkeys.binary-data
  10401. (let ((commit "22e908976d7f3e2318b7168909f911b4a00963ee")
  10402. (revision "0"))
  10403. (package
  10404. (name "sbcl-com.gigamonkeys.binary-data")
  10405. (version (git-version "0.0.0" revision commit))
  10406. (source
  10407. (origin
  10408. (method git-fetch)
  10409. (uri (git-reference
  10410. (url "https://github.com/gigamonkey/monkeylib-binary-data")
  10411. (commit commit)))
  10412. (file-name (git-file-name name version))
  10413. (sha256
  10414. (base32 "072v417vmcnvmyh8ddq9vmwwrizm7zwz9dpzi14qy9nsw8q649zw"))))
  10415. (build-system asdf-build-system/sbcl)
  10416. (inputs
  10417. (list sbcl-alexandria))
  10418. (home-page "https://github.com/gigamonkey/monkeylib-binary-data")
  10419. (synopsis "Common Lisp library for reading and writing binary data")
  10420. (description
  10421. "This a Common Lisp library for reading and writing binary data. It is
  10422. based on code from chapter 24 of the book @emph{Practical Common Lisp}.")
  10423. (license license:bsd-3))))
  10424. (define-public cl-com.gigamonkeys.binary-data
  10425. (sbcl-package->cl-source-package sbcl-com.gigamonkeys.binary-data))
  10426. (define-public ecl-com.gigamonkeys.binary-data
  10427. (sbcl-package->ecl-package sbcl-com.gigamonkeys.binary-data))
  10428. (define-public sbcl-deflate
  10429. (package
  10430. (name "sbcl-deflate")
  10431. (version "1.0.3")
  10432. (source
  10433. (origin
  10434. (method git-fetch)
  10435. (uri (git-reference
  10436. (url "https://github.com/pmai/Deflate")
  10437. (commit (string-append "release-" version))))
  10438. (file-name (git-file-name name version))
  10439. (sha256
  10440. (base32 "1jpdjnxh6cw2d8hk70r2sxn92is52s9b855irvwkdd777fdciids"))))
  10441. (build-system asdf-build-system/sbcl)
  10442. (home-page "https://github.com/pmai/Deflate")
  10443. (synopsis "Native deflate decompression for Common Lisp")
  10444. (description
  10445. "This library is an implementation of Deflate (RFC 1951) decompression,
  10446. with optional support for ZLIB-style (RFC 1950) and gzip-style (RFC 1952)
  10447. wrappers of deflate streams. It currently does not handle compression.")
  10448. (license license:expat)))
  10449. (define-public cl-deflate
  10450. (sbcl-package->cl-source-package sbcl-deflate))
  10451. (define-public ecl-deflate
  10452. (sbcl-package->ecl-package sbcl-deflate))
  10453. (define-public sbcl-skippy
  10454. (let ((commit "e456210202ca702c792292c5060a264d45e47090")
  10455. (revision "0"))
  10456. (package
  10457. (name "sbcl-skippy")
  10458. (version (git-version "1.3.12" revision commit))
  10459. (source
  10460. (origin
  10461. (method git-fetch)
  10462. (uri (git-reference
  10463. (url "https://github.com/xach/skippy")
  10464. (commit commit)))
  10465. (file-name (git-file-name name version))
  10466. (sha256
  10467. (base32 "1sxbn5nh24qpx9w64x8mhp259cxcl1x8p126wk3b91ijjsj7l5vj"))))
  10468. (build-system asdf-build-system/sbcl)
  10469. (home-page "https://xach.com/lisp/skippy/")
  10470. (synopsis "Common Lisp library for GIF images")
  10471. (description
  10472. "Skippy is a Common Lisp library to read and write GIF image files.")
  10473. (license license:bsd-2))))
  10474. (define-public cl-skippy
  10475. (sbcl-package->cl-source-package sbcl-skippy))
  10476. (define-public ecl-skippy
  10477. (sbcl-package->ecl-package sbcl-skippy))
  10478. (define-public sbcl-cl-freetype2
  10479. (let ((commit "96058da730b4812df916c1f4ee18c99b3b15a3de")
  10480. (revision "0"))
  10481. (package
  10482. (name "sbcl-cl-freetype2")
  10483. (version (git-version "1.1" revision commit))
  10484. (source
  10485. (origin
  10486. (method git-fetch)
  10487. (uri (git-reference
  10488. (url "https://github.com/rpav/cl-freetype2")
  10489. (commit commit)))
  10490. (file-name (git-file-name name version))
  10491. (sha256
  10492. (base32 "0f8darhairgxnb5bzqcny7nh7ss3471bdzix5rzcyiwdbr5kymjl"))))
  10493. (build-system asdf-build-system/sbcl)
  10494. (native-inputs
  10495. (list sbcl-fiveam))
  10496. (inputs
  10497. `(("alexandria" ,sbcl-alexandria)
  10498. ("cffi" ,sbcl-cffi)
  10499. ("freetype" ,freetype)
  10500. ("trivial-garbage" ,sbcl-trivial-garbage)))
  10501. (arguments
  10502. `(#:phases
  10503. (modify-phases %standard-phases
  10504. (add-after 'unpack 'fix-paths
  10505. (lambda* (#:key inputs #:allow-other-keys)
  10506. (substitute* "src/ffi/ft2-lib.lisp"
  10507. (("\"libfreetype\"")
  10508. (string-append "\"" (assoc-ref inputs "freetype")
  10509. "/lib/libfreetype\"")))
  10510. (substitute* "src/ffi/grovel/grovel-freetype2.lisp"
  10511. (("-I/usr/include/freetype")
  10512. (string-append "-I" (assoc-ref inputs "freetype")
  10513. "/include/freetype")))
  10514. #t)))))
  10515. (home-page "https://github.com/rpav/cl-freetype2")
  10516. (synopsis "Common Lisp bindings for Freetype 2")
  10517. (description
  10518. "This is a general Freetype 2 wrapper for Common Lisp using CFFI. It's
  10519. geared toward both using Freetype directly by providing a simplified API, as
  10520. well as providing access to the underlying C structures and functions for use
  10521. with other libraries which may also use Freetype.")
  10522. (license license:bsd-3))))
  10523. (define-public cl-freetype2
  10524. (sbcl-package->cl-source-package sbcl-cl-freetype2))
  10525. (define-public ecl-cl-freetype2
  10526. (sbcl-package->ecl-package sbcl-cl-freetype2))
  10527. (define-public sbcl-opticl-core
  10528. (let ((commit "b7cd13d26df6b824b216fbc360dc27bfadf04999")
  10529. (revision "0"))
  10530. (package
  10531. (name "sbcl-opticl-core")
  10532. (version (git-version "0.0.0" revision commit))
  10533. (source
  10534. (origin
  10535. (method git-fetch)
  10536. (uri (git-reference
  10537. (url "https://github.com/slyrus/opticl-core")
  10538. (commit commit)))
  10539. (file-name (git-file-name name version))
  10540. (sha256
  10541. (base32 "0458bllabcdjghfrqx6aki49c9qmvfmkk8jl75cfpi7q0i12kh95"))))
  10542. (build-system asdf-build-system/sbcl)
  10543. (inputs
  10544. (list sbcl-alexandria))
  10545. (home-page "https://github.com/slyrus/opticl-core")
  10546. (synopsis "Core classes and pixel access macros for Opticl")
  10547. (description
  10548. "This Common Lisp library contains the core classes and pixel access
  10549. macros for the Opticl image processing library.")
  10550. (license license:bsd-2))))
  10551. (define-public cl-opticl-core
  10552. (sbcl-package->cl-source-package sbcl-opticl-core))
  10553. (define-public ecl-opticl-core
  10554. (sbcl-package->ecl-package sbcl-opticl-core))
  10555. (define-public sbcl-retrospectiff
  10556. (let ((commit "2fbf8c687799487654d988c7036d19d75a7fc67d")
  10557. (revision "1"))
  10558. (package
  10559. (name "sbcl-retrospectiff")
  10560. (version (git-version "0.2" revision commit))
  10561. (source
  10562. (origin
  10563. (method git-fetch)
  10564. (uri (git-reference
  10565. (url "https://github.com/slyrus/retrospectiff")
  10566. (commit commit)))
  10567. (file-name (git-file-name "cl-retrospectiff" version))
  10568. (sha256
  10569. (base32 "1vfcbfzhkm2wkxnjg7y6gg93wlib9cqpbdbhyqcm5kc7170ci3vz"))))
  10570. (build-system asdf-build-system/sbcl)
  10571. (native-inputs
  10572. (list sbcl-fiveam))
  10573. (inputs
  10574. (list sbcl-cl-jpeg
  10575. sbcl-com.gigamonkeys.binary-data
  10576. sbcl-deflate
  10577. sbcl-flexi-streams
  10578. sbcl-ieee-floats
  10579. sbcl-opticl-core))
  10580. (home-page "https://github.com/slyrus/retrospectiff")
  10581. (synopsis "Common Lisp library for TIFF images")
  10582. (description
  10583. "Retrospectiff is a common lisp library for reading and writing images
  10584. in the TIFF (Tagged Image File Format) format.")
  10585. (license license:bsd-2))))
  10586. (define-public cl-retrospectif
  10587. (sbcl-package->cl-source-package sbcl-retrospectiff))
  10588. (define-public ecl-retrospectiff
  10589. (sbcl-package->ecl-package sbcl-retrospectiff))
  10590. (define-public sbcl-mmap
  10591. (let ((commit "ba2e98c67e25f0fb8ff838238561120a23903ce7")
  10592. (revision "0"))
  10593. (package
  10594. (name "sbcl-mmap")
  10595. (version (git-version "1.0.0" revision commit))
  10596. (source
  10597. (origin
  10598. (method git-fetch)
  10599. (uri (git-reference
  10600. (url "https://github.com/Shinmera/mmap")
  10601. (commit commit)))
  10602. (file-name (git-file-name name version))
  10603. (sha256
  10604. (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q"))))
  10605. (build-system asdf-build-system/sbcl)
  10606. (native-inputs
  10607. (list sbcl-alexandria sbcl-cffi sbcl-parachute
  10608. sbcl-trivial-features))
  10609. (inputs
  10610. (list sbcl-cffi sbcl-documentation-utils))
  10611. (home-page "https://shinmera.github.io/mmap/")
  10612. (synopsis "File memory mapping for Common Lisp")
  10613. (description
  10614. "This is a utility library providing access to the @emph{mmap} family of
  10615. functions in a portable way. It allows you to directly map a file into the
  10616. address space of your process without having to manually read it into memory
  10617. sequentially. Typically this is much more efficient for files that are larger
  10618. than a few Kb.")
  10619. (license license:zlib))))
  10620. (define-public cl-mmap
  10621. (sbcl-package->cl-source-package sbcl-mmap))
  10622. (define-public ecl-mmap
  10623. (sbcl-package->ecl-package sbcl-mmap))
  10624. (define-public sbcl-3bz
  10625. (let ((commit "569614c40408f3aefc77ba233e0e4bd66d3850ad")
  10626. (revision "1"))
  10627. (package
  10628. (name "sbcl-3bz")
  10629. (version (git-version "0.0.0" revision commit))
  10630. (source
  10631. (origin
  10632. (method git-fetch)
  10633. (uri (git-reference
  10634. (url "https://github.com/3b/3bz")
  10635. (commit commit)))
  10636. (file-name (git-file-name name version))
  10637. (sha256
  10638. (base32 "0kvvlvf50jhhw1s510f3clpr1a68632bq6d698yxcrx722igcrg4"))))
  10639. (build-system asdf-build-system/sbcl)
  10640. (inputs
  10641. (list sbcl-alexandria
  10642. sbcl-babel
  10643. sbcl-cffi
  10644. sbcl-mmap
  10645. sbcl-nibbles
  10646. sbcl-trivial-features))
  10647. (home-page "https://github.com/3b/3bz")
  10648. (synopsis "Deflate decompression for Common Lisp")
  10649. (description
  10650. "3bz is an implementation of Deflate decompression (RFC 1951) optionally
  10651. with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from
  10652. foreign pointers (for use with mmap and similar, etc), and from CL octet
  10653. vectors and streams.")
  10654. (license license:expat))))
  10655. (define-public cl-3bz
  10656. (sbcl-package->cl-source-package sbcl-3bz))
  10657. (define-public ecl-3bz
  10658. (sbcl-package->ecl-package sbcl-3bz))
  10659. (define-public sbcl-zpb-exif
  10660. (package
  10661. (name "sbcl-zpb-exif")
  10662. (version "1.2.5")
  10663. (source
  10664. (origin
  10665. (method git-fetch)
  10666. (uri (git-reference
  10667. (url "https://github.com/xach/zpb-exif")
  10668. (commit (string-append "release-" version))))
  10669. (file-name (git-file-name "cl-zpb-exif" version))
  10670. (sha256
  10671. (base32 "0h1n36lfl8xn8rfyl5jxz9m8zlg0if2avmryas79f684yczrvdnd"))))
  10672. (build-system asdf-build-system/sbcl)
  10673. (home-page "https://xach.com/lisp/zpb-exif/")
  10674. (synopsis "EXIF information extractor for Common Lisp")
  10675. (description
  10676. "This is a Common Lisp library to extract EXIF information from image
  10677. files.")
  10678. (license license:bsd-2)))
  10679. (define-public cl-zpb-exif
  10680. (sbcl-package->cl-source-package sbcl-zpb-exif))
  10681. (define-public ecl-zpb-exif
  10682. (sbcl-package->ecl-package sbcl-zpb-exif))
  10683. (define-public sbcl-pngload
  10684. (let ((commit "91f1d703c65bb6a94d6fee06ddbbbbbc5778b71f")
  10685. (revision "2"))
  10686. (package
  10687. (name "sbcl-pngload")
  10688. (version (git-version "2.0.0" revision commit))
  10689. (source
  10690. (origin
  10691. (method git-fetch)
  10692. (uri (git-reference
  10693. (url "https://git.mfiano.net/mfiano/pngload.git")
  10694. (commit commit)))
  10695. (file-name (git-file-name "pngload" version))
  10696. (sha256
  10697. (base32 "0s94fdbrbqj12qvgyn2g4lfwvz7qhhzbclrpz5ni7adwxgrmvxl1"))))
  10698. (build-system asdf-build-system/sbcl)
  10699. (inputs
  10700. `(("3bz" ,sbcl-3bz)
  10701. ("alexandria" ,sbcl-alexandria)
  10702. ("cffi" ,sbcl-cffi)
  10703. ("mmap" ,sbcl-mmap)
  10704. ("parse-float" ,sbcl-parse-float)
  10705. ("static-vectors" ,sbcl-static-vectors)
  10706. ("swap-bytes" ,sbcl-swap-bytes)
  10707. ("zpb-exif" ,sbcl-zpb-exif)))
  10708. (arguments
  10709. ;; Test suite disabled because of a dependency cycle.
  10710. ;; pngload tests depend on opticl which depends on pngload.
  10711. '(#:tests? #f))
  10712. (home-page "https://git.mfiano.net/mfiano/pngload.git")
  10713. (synopsis "PNG image decoder for Common Lisp")
  10714. (description
  10715. "This is a Common Lisp library to load images in the PNG image format,
  10716. both from files on disk, or streams in memory.")
  10717. (license license:expat))))
  10718. (define-public cl-pngload
  10719. (sbcl-package->cl-source-package sbcl-pngload))
  10720. (define-public ecl-pngload
  10721. (sbcl-package->ecl-package sbcl-pngload))
  10722. (define-public sbcl-opticl
  10723. (let ((commit "f6fc4dc5fa61ae3f2527b77e4bda99001ba37dcb")
  10724. (revision "1"))
  10725. (package
  10726. (name "sbcl-opticl")
  10727. (version (git-version "0.0.0" revision commit))
  10728. (source
  10729. (origin
  10730. (method git-fetch)
  10731. (uri (git-reference
  10732. (url "https://github.com/slyrus/opticl")
  10733. (commit commit)))
  10734. (file-name (git-file-name "cl-opticl" version))
  10735. (sha256
  10736. (base32 "1jx9n78d4lf53iz24yid34l92zrpqxfihv6049ixcy0xigf7j4ac"))))
  10737. (build-system asdf-build-system/sbcl)
  10738. (native-inputs
  10739. (list sbcl-fiveam))
  10740. (inputs
  10741. (list sbcl-alexandria
  10742. sbcl-cl-jpeg
  10743. sbcl-cl-tga
  10744. sbcl-opticl-core
  10745. sbcl-png-read
  10746. sbcl-pngload
  10747. sbcl-retrospectiff
  10748. sbcl-skippy
  10749. sbcl-zpng))
  10750. (arguments
  10751. '(#:asd-files '("opticl.asd")))
  10752. (home-page "https://github.com/slyrus/opticl")
  10753. (synopsis "Image processing library for Common Lisp")
  10754. (description
  10755. "Opticl is a Common Lisp library for representing, processing, loading,
  10756. and saving 2-dimensional pixel-based images.")
  10757. (license license:bsd-2))))
  10758. (define-public cl-opticl
  10759. (sbcl-package->cl-source-package sbcl-opticl))
  10760. (define-public ecl-opticl
  10761. (sbcl-package->ecl-package sbcl-opticl))
  10762. (define-public sbcl-cl-dejavu
  10763. (let ((commit "9d68ced4edee6f96fead42cb4835d0ff4a158373")
  10764. (revision "1"))
  10765. (package
  10766. (name "sbcl-cl-dejavu")
  10767. (version (git-version "0.0.0" revision commit))
  10768. (source
  10769. (origin
  10770. (method git-fetch)
  10771. (uri (git-reference
  10772. (url "https://github.com/dkochmanski/cl-dejavu")
  10773. (commit commit)))
  10774. (file-name (git-file-name "cl-dejavu" version))
  10775. (sha256
  10776. (base32 "1lbxiq21bxj8r11c58cqskgn8gnl2p8q1ydkhdsv7i7xnhv2y7r0"))))
  10777. (build-system asdf-build-system/sbcl)
  10778. (home-page "https://github.com/dkochmanski/cl-dejavu")
  10779. (synopsis "DejaVu fonts for Common Lisp")
  10780. (description
  10781. "This is a repackage of the original DejaVu Fonts with some convenience
  10782. functions.")
  10783. (license (list license:cc0
  10784. (license:x11-style "http://dejavu-fonts.org/"))))))
  10785. (define-public cl-dejavu
  10786. (sbcl-package->cl-source-package sbcl-cl-dejavu))
  10787. (define-public ecl-dejavu
  10788. (sbcl-package->ecl-package sbcl-cl-dejavu))
  10789. (define-public sbcl-mcclim
  10790. (let ((commit "292343f9e30c7ef54a3d9b4b045495387c51585e")
  10791. (revision "2"))
  10792. (package
  10793. (name "sbcl-mcclim")
  10794. (version (git-version "0.9.7" revision commit))
  10795. (source
  10796. (origin
  10797. (method git-fetch)
  10798. (uri (git-reference
  10799. (url "https://github.com/mcclim/mcclim")
  10800. (commit commit)))
  10801. (file-name (git-file-name "cl-mcclim" version))
  10802. (sha256
  10803. (base32 "10sq34rk11p2lrpqg5hr4721y2yqpmz9yk88mgdmwn7iyga5f2fp"))))
  10804. (build-system asdf-build-system/sbcl)
  10805. (native-inputs
  10806. (list sbcl-fiveam pkg-config))
  10807. (inputs
  10808. (list fontconfig
  10809. freetype
  10810. harfbuzz
  10811. sbcl-alexandria
  10812. sbcl-babel
  10813. sbcl-bordeaux-threads
  10814. sbcl-cl-dejavu
  10815. sbcl-cl-freetype2
  10816. sbcl-cl-pdf
  10817. sbcl-cffi
  10818. sbcl-cl-unicode
  10819. sbcl-cl-vectors
  10820. sbcl-closer-mop
  10821. sbcl-clx
  10822. sbcl-flexi-streams
  10823. sbcl-flexichain
  10824. sbcl-log4cl
  10825. sbcl-opticl
  10826. sbcl-spatial-trees
  10827. sbcl-slime-swank
  10828. sbcl-trivial-features
  10829. sbcl-trivial-garbage
  10830. sbcl-trivial-gray-streams
  10831. sbcl-zpb-ttf))
  10832. (arguments
  10833. '(#:asd-systems '("mcclim"
  10834. "clim-examples")
  10835. #:phases
  10836. (modify-phases %standard-phases
  10837. (add-after 'unpack 'fix-paths
  10838. (lambda* (#:key inputs #:allow-other-keys)
  10839. (substitute* "Extensions/fontconfig/src/functions.lisp"
  10840. (("libfontconfig\\.so")
  10841. (search-input-file inputs "/lib/libfontconfig.so")))
  10842. (substitute* "Extensions/harfbuzz/src/functions.lisp"
  10843. (("libharfbuzz\\.so")
  10844. (search-input-file inputs "/lib/libharfbuzz.so")))))
  10845. (add-after 'unpack 'fix-build
  10846. (lambda _
  10847. ;; The cffi-grovel system does not get loaded automatically,
  10848. ;; so we load it explicitly.
  10849. (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
  10850. (("\\(asdf:defsystem #:mcclim-fontconfig" all)
  10851. (string-append "(asdf:load-system :cffi-grovel)\n" all)))
  10852. (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
  10853. (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
  10854. (string-append "(asdf:load-system :cffi-grovel)\n" all))))))))
  10855. (home-page "https://common-lisp.net/project/mcclim/")
  10856. (synopsis "Common Lisp GUI toolkit")
  10857. (description
  10858. "McCLIM is an implementation of the @emph{Common Lisp Interface Manager
  10859. specification}, a toolkit for writing GUIs in Common Lisp.")
  10860. (license license:lgpl2.1+))))
  10861. (define-public cl-mcclim
  10862. (sbcl-package->cl-source-package sbcl-mcclim))
  10863. (define-public ecl-mcclim
  10864. (sbcl-package->ecl-package sbcl-mcclim))
  10865. (define-public sbcl-cl-inflector
  10866. (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
  10867. (revision "1"))
  10868. (package
  10869. (name "sbcl-cl-inflector")
  10870. (version (git-version "0.2" revision commit))
  10871. (source
  10872. (origin
  10873. (method git-fetch)
  10874. (uri (git-reference
  10875. (url "https://github.com/AccelerationNet/cl-inflector")
  10876. (commit commit)))
  10877. (file-name (git-file-name name version))
  10878. (sha256
  10879. (base32 "1xwwlhik1la4fp984qnx2dqq24v012qv4x0y49sngfpwg7n0ya7y"))))
  10880. (build-system asdf-build-system/sbcl)
  10881. (native-inputs
  10882. (list sbcl-lisp-unit2))
  10883. (inputs
  10884. (list sbcl-alexandria sbcl-cl-ppcre))
  10885. (home-page "https://github.com/AccelerationNet/cl-inflector")
  10886. (synopsis "Library to pluralize/singularize English and Portuguese words")
  10887. (description
  10888. "This is a common lisp library to easily pluralize and singularize
  10889. English and Portuguese words. This is a port of the ruby ActiveSupport
  10890. Inflector module.")
  10891. (license license:expat))))
  10892. (define-public cl-inflector
  10893. (sbcl-package->cl-source-package sbcl-cl-inflector))
  10894. (define-public ecl-cl-inflector
  10895. (sbcl-package->ecl-package sbcl-cl-inflector))
  10896. (define-public sbcl-ixf
  10897. (let ((commit "ed26f87e4127e4a9e3aac4ff1e60d1f39cca5183")
  10898. (revision "1"))
  10899. (package
  10900. (name "sbcl-ixf")
  10901. (version (git-version "0.1.0" revision commit))
  10902. (source
  10903. (origin
  10904. (method git-fetch)
  10905. (uri (git-reference
  10906. (url "https://github.com/dimitri/cl-ixf")
  10907. (commit commit)))
  10908. (file-name (git-file-name "cl-ixf" version))
  10909. (sha256
  10910. (base32 "1wjdnf4vr9z7lcfc49kl43g6l2i23q9n81siy494k17d766cdvqa"))))
  10911. (build-system asdf-build-system/sbcl)
  10912. (inputs
  10913. (list sbcl-alexandria
  10914. sbcl-babel
  10915. sbcl-cl-ppcre
  10916. sbcl-ieee-floats
  10917. sbcl-local-time
  10918. sbcl-md5
  10919. sbcl-split-sequence))
  10920. (home-page "https://github.com/dimitri/cl-ixf")
  10921. (synopsis "Parse IBM IXF file format")
  10922. (description
  10923. "This is a Common Lisp library to handle the IBM PC version of the IXF
  10924. (Integration Exchange Format) file format.")
  10925. (license license:public-domain))))
  10926. (define-public ecl-ixf
  10927. (sbcl-package->ecl-package sbcl-ixf))
  10928. (define-public cl-ixf
  10929. (sbcl-package->cl-source-package sbcl-ixf))
  10930. (define-public sbcl-qbase64
  10931. (package
  10932. (name "sbcl-qbase64")
  10933. (version "0.3.0")
  10934. (source
  10935. (origin
  10936. (method git-fetch)
  10937. (uri (git-reference
  10938. (url "https://github.com/chaitanyagupta/qbase64")
  10939. (commit version)))
  10940. (file-name (git-file-name name version))
  10941. (sha256
  10942. (base32 "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi"))))
  10943. (build-system asdf-build-system/sbcl)
  10944. (inputs
  10945. (list sbcl-metabang-bind sbcl-trivial-gray-streams))
  10946. (native-inputs
  10947. (list sbcl-fiveam))
  10948. (home-page "https://github.com/chaitanyagupta/qbase64")
  10949. (synopsis "Base64 encoder and decoder for Common Lisp")
  10950. (description "@code{qbase64} provides a fast and flexible base64 encoder
  10951. and decoder for Common Lisp.")
  10952. (license license:bsd-3)))
  10953. (define-public cl-qbase64
  10954. (sbcl-package->cl-source-package sbcl-qbase64))
  10955. (define-public ecl-qbase64
  10956. (sbcl-package->ecl-package sbcl-qbase64))
  10957. (define-public sbcl-lw-compat
  10958. ;; No release since 2013.
  10959. (let ((commit "aabfe28c6c1a4949f9d7b3cb30319367c9fd1c0d"))
  10960. (package
  10961. (name "sbcl-lw-compat")
  10962. (version (git-version "1.0.0" "1" commit))
  10963. (source
  10964. (origin
  10965. (method git-fetch)
  10966. (uri (git-reference
  10967. (url "https://github.com/pcostanza/lw-compat/")
  10968. (commit commit)))
  10969. (file-name (git-file-name name version))
  10970. (sha256
  10971. (base32 "131rq5k2mlv9bfhmafiv6nfsivl4cxx13d9wr06v5jrqnckh4aav"))))
  10972. (build-system asdf-build-system/sbcl)
  10973. (home-page "https://github.com/pcostanza/lw-compat/")
  10974. (synopsis "LispWorks utilities ported to other Common Lisp implementations")
  10975. (description "This package contains a few utility functions from the
  10976. LispWorks library that are used in software such as ContextL.")
  10977. (license license:expat))))
  10978. (define-public cl-lw-compat
  10979. (sbcl-package->cl-source-package sbcl-lw-compat))
  10980. (define-public ecl-lw-compat
  10981. (sbcl-package->ecl-package sbcl-lw-compat))
  10982. (define-public sbcl-contextl
  10983. ;; No release since 2013.
  10984. (let ((commit "f4fb3f59b0844788613fc4d1cc0d2b08df9488bb")
  10985. (revision "2"))
  10986. (package
  10987. (name "sbcl-contextl")
  10988. (version (git-version "1.0.0" revision commit))
  10989. (source
  10990. (origin
  10991. (method git-fetch)
  10992. (uri (git-reference
  10993. (url "https://github.com/pcostanza/contextl/")
  10994. (commit commit)))
  10995. (file-name (git-file-name name version))
  10996. (sha256
  10997. (base32 "0apgznz4g6lpmd86lq7w0xddfjgnirk83ig7p0j6i93xadhy9wh0"))))
  10998. (build-system asdf-build-system/sbcl)
  10999. (inputs
  11000. (list sbcl-closer-mop sbcl-lw-compat))
  11001. (home-page "https://github.com/pcostanza/contextl")
  11002. (synopsis "Context-oriented programming for Common Lisp")
  11003. (description "ContextL is a CLOS extension for Context-Oriented
  11004. Programming (COP).
  11005. Find overview of ContextL's features in an overview paper:
  11006. @url{http://www.p-cos.net/documents/contextl-soa.pdf}. See also this general
  11007. overview article about COP which also contains some ContextL examples:
  11008. @url{http://www.jot.fm/issues/issue_2008_03/article4/}.")
  11009. (license license:expat))))
  11010. (define-public cl-contextl
  11011. (sbcl-package->cl-source-package sbcl-contextl))
  11012. (define-public ecl-contextl
  11013. (sbcl-package->ecl-package sbcl-contextl))
  11014. (define-public sbcl-hu.dwim.common-lisp
  11015. (let ((commit "90558195773383142a57a16687d5e7f4adea6418"))
  11016. (package
  11017. (name "sbcl-hu.dwim.common-lisp")
  11018. (version "2021-01-27")
  11019. (source
  11020. (origin
  11021. (method git-fetch)
  11022. (uri (git-reference
  11023. (url "https://github.com/hu-dwim/hu.dwim.common-lisp/")
  11024. (commit commit)))
  11025. (file-name (git-file-name name version))
  11026. (sha256
  11027. (base32 "06zkdw3scnaw0d4nmsgkv7pi7sw00dikdgfgsqmbqfbz2yrsdabk"))))
  11028. (build-system asdf-build-system/sbcl)
  11029. (native-inputs
  11030. (list sbcl-hu.dwim.asdf))
  11031. (home-page "http://dwim.hu/project/hu.dwim.common-lisp")
  11032. (synopsis "Redefine some standard Common Lisp names")
  11033. (description "This library is a redefinition of the standard Common Lisp
  11034. package that includes a number of renames and shadows.")
  11035. (license license:public-domain))))
  11036. (define-public cl-hu.dwim.common-lisp
  11037. (sbcl-package->cl-source-package sbcl-hu.dwim.common-lisp))
  11038. (define-public ecl-hu.dwim.common-lisp
  11039. (sbcl-package->ecl-package sbcl-hu.dwim.common-lisp))
  11040. (define-public sbcl-hu.dwim.common
  11041. (package
  11042. (name "sbcl-hu.dwim.common")
  11043. (version "2015-07-09")
  11044. (source
  11045. (origin
  11046. (method url-fetch)
  11047. (uri (string-append
  11048. "http://beta.quicklisp.org/archive/hu.dwim.common/"
  11049. version "/hu.dwim.common-"
  11050. (string-replace-substring version "-" "")
  11051. "-darcs.tgz"))
  11052. (sha256
  11053. (base32 "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp"))))
  11054. (build-system asdf-build-system/sbcl)
  11055. (native-inputs
  11056. (list sbcl-hu.dwim.asdf))
  11057. (inputs
  11058. (list sbcl-alexandria
  11059. sbcl-anaphora
  11060. sbcl-closer-mop
  11061. sbcl-hu.dwim.common-lisp
  11062. sbcl-iterate
  11063. sbcl-metabang-bind))
  11064. (home-page "http://dwim.hu/")
  11065. (synopsis "Common Lisp library shared by other hu.dwim systems")
  11066. (description "This package contains a support library for other
  11067. hu.dwim systems.")
  11068. (license license:public-domain)))
  11069. (define-public cl-hu.dwim.common
  11070. (sbcl-package->cl-source-package sbcl-hu.dwim.common))
  11071. (define-public ecl-hu.dwim.common
  11072. (sbcl-package->ecl-package sbcl-hu.dwim.common))
  11073. (define-public sbcl-hu.dwim.defclass-star
  11074. (let ((commit "3086878a485074f9b2913c58267a9b764cd632fd"))
  11075. (package
  11076. (name "sbcl-hu.dwim.defclass-star")
  11077. ;; We used to set version from the date when it was a darcs repo, so we
  11078. ;; keep the year so that package gets updated on previous installs.
  11079. (version (git-version "2021" "2" commit))
  11080. (source
  11081. (origin
  11082. (method git-fetch)
  11083. (uri (git-reference
  11084. (url "https://github.com/hu-dwim/hu.dwim.defclass-star")
  11085. (commit commit)))
  11086. (file-name (git-file-name name version))
  11087. (sha256
  11088. (base32 "19ipds9r71qymfdp4izg0l7zmvinp06adr8rdalhaq7v7mzpg83z"))))
  11089. (build-system asdf-build-system/sbcl)
  11090. (native-inputs
  11091. (list ;; These 2 inputs are only needed tests which are disabled, see below.
  11092. ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
  11093. ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
  11094. ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
  11095. sbcl-hu.dwim.asdf))
  11096. (arguments
  11097. `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
  11098. ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
  11099. ;; -> hu.dwim.util -> hu.dwim.defclass-star.
  11100. #:tests? #f))
  11101. (home-page "https://github.com/hu-dwim/hu.dwim.defclass-star")
  11102. (synopsis "Simplify definitions with defclass* and friends in Common Lisp")
  11103. (description "@code{defclass-star} provides defclass* and defcondition* to
  11104. simplify class and condition declarations. Features include:
  11105. @itemize
  11106. @item Automatically export all or select slots at compile time.
  11107. @item Define the @code{:initarg} and @code{:accessor} automatically.
  11108. @item Specify a name transformer for both the @code{:initarg} and
  11109. @code{:accessor}, etc.
  11110. @item Specify the @code{:initform} as second slot value.
  11111. @end itemize
  11112. See
  11113. @url{https://common-lisp.net/project/defclass-star/configuration.lisp.html}
  11114. for an example.")
  11115. (license license:public-domain))))
  11116. (define-public cl-hu.dwim.defclass-star
  11117. (sbcl-package->cl-source-package sbcl-hu.dwim.defclass-star))
  11118. (define-public ecl-hu.dwim.defclass-star
  11119. (sbcl-package->ecl-package sbcl-hu.dwim.defclass-star))
  11120. (define-public sbcl-livesupport
  11121. (let ((commit "71e6e412df9f3759ad8378fabb203913d82e228a")
  11122. (revision "1"))
  11123. (package
  11124. (name "sbcl-livesupport")
  11125. (version (git-version "0.0.0" revision commit))
  11126. (source
  11127. (origin
  11128. (method git-fetch)
  11129. (uri (git-reference
  11130. (url "https://github.com/cbaggers/livesupport")
  11131. (commit commit)))
  11132. (file-name (git-file-name name version))
  11133. (sha256
  11134. (base32 "1rvnl0mncylbx63608pz5llss7y92j7z3ydambk9mcnjg2mjaapg"))))
  11135. (build-system asdf-build-system/sbcl)
  11136. (home-page "https://github.com/cbaggers/livesupport")
  11137. (synopsis "Some helpers that make livecoding a little easier")
  11138. (description "This package provides a macro commonly used in livecoding to
  11139. enable continuing when errors are raised. Simply wrap around a chunk of code
  11140. and it provides a restart called @code{continue} which ignores the error and
  11141. carrys on from the end of the body.")
  11142. (license license:bsd-2))))
  11143. (define-public cl-livesupport
  11144. (sbcl-package->cl-source-package sbcl-livesupport))
  11145. (define-public ecl-livesupport
  11146. (sbcl-package->ecl-package sbcl-livesupport))
  11147. (define-public sbcl-envy
  11148. (let ((commit "26a7faadc981f2a047daa36f715a44faec5dd00c")
  11149. (revision "2"))
  11150. (package
  11151. (name "sbcl-envy")
  11152. (version (git-version "0.1" revision commit))
  11153. (home-page "https://github.com/fukamachi/envy")
  11154. (source
  11155. (origin
  11156. (method git-fetch)
  11157. (uri (git-reference
  11158. (url "https://github.com/fukamachi/envy")
  11159. (commit commit)))
  11160. (file-name (git-file-name "cl-envy" version))
  11161. (sha256
  11162. (base32 "1r0wgimd7z57x8cv69sw76w3y5l70hq50882a9nq5l4v64lg55fq"))))
  11163. (build-system asdf-build-system/sbcl)
  11164. (native-inputs
  11165. (list sbcl-osicat sbcl-prove))
  11166. (arguments
  11167. `(#:asd-systems '("envy-test" "envy")
  11168. ;; FIXME: Tests fail with
  11169. ;; Component ENVY-ASD::ENVY-TEST not found, required by #<SYSTEM "envy">
  11170. ;; https://github.com/fukamachi/envy/issues/10
  11171. #:tests? #f))
  11172. (synopsis "Common Lisp configuration switcher inspired by Perl's Config::ENV")
  11173. (description "Envy is a configuration manager for various applications.
  11174. Envy uses an environment variable to determine a configuration to use. This
  11175. can separate configuration system from an implementation.")
  11176. (license license:bsd-2))))
  11177. (define-public cl-envy
  11178. (sbcl-package->cl-source-package sbcl-envy))
  11179. (define-public ecl-envy
  11180. (sbcl-package->ecl-package sbcl-envy))
  11181. (define-public sbcl-mito
  11182. (let ((commit "47ba4865ca4bb2894b53703a49a299e973f8eb86")
  11183. (revision "3"))
  11184. (package
  11185. (name "sbcl-mito")
  11186. (version (git-version "0.1" revision commit))
  11187. (home-page "https://github.com/fukamachi/mito")
  11188. (source
  11189. (origin
  11190. (method git-fetch)
  11191. (uri (git-reference
  11192. (url home-page)
  11193. (commit commit)))
  11194. (file-name (git-file-name "mito" version))
  11195. (sha256
  11196. (base32 "0313nxlj1zqw6zyc23xpf85v0jk32sg0543ql8363jki0pmg7yhs"))))
  11197. (build-system asdf-build-system/sbcl)
  11198. (native-inputs
  11199. (list sbcl-prove))
  11200. (inputs
  11201. `(("alexandria" ,sbcl-alexandria)
  11202. ("cl-package-locks" ,sbcl-cl-package-locks)
  11203. ("cl-ppcre" ,sbcl-cl-ppcre)
  11204. ("cl-reexport" ,sbcl-cl-reexport)
  11205. ("closer-mop" ,sbcl-closer-mop)
  11206. ("dbi" ,sbcl-dbi)
  11207. ("dissect" ,sbcl-dissect)
  11208. ("esrap" ,sbcl-esrap)
  11209. ("local-time" ,sbcl-local-time)
  11210. ("sxql" ,sbcl-sxql)
  11211. ("trivia" ,sbcl-trivia)
  11212. ("uuid" ,sbcl-uuid)))
  11213. (arguments
  11214. '(#:phases
  11215. (modify-phases %standard-phases
  11216. (add-after 'unpack 'remove-non-functional-tests
  11217. (lambda _
  11218. (substitute* "mito-test.asd"
  11219. (("\\(:test-file \"db/mysql\"\\)") "")
  11220. (("\\(:test-file \"db/postgres\"\\)") "")
  11221. (("\\(:test-file \"dao\"\\)") "")
  11222. ;; TODO: migration/sqlite3 should work, re-enable once
  11223. ;; upstream has fixed it:
  11224. ;; https://github.com/fukamachi/mito/issues/70
  11225. (("\\(:test-file \"migration/sqlite3\"\\)") "")
  11226. (("\\(:test-file \"migration/mysql\"\\)") "")
  11227. (("\\(:test-file \"migration/postgres\"\\)") "")
  11228. (("\\(:test-file \"postgres-types\"\\)") "")
  11229. (("\\(:test-file \"mixin\"\\)") ""))
  11230. #t)))
  11231. #:asd-systems '("mito-test" "mito")))
  11232. (synopsis "ORM for Common Lisp with migrations and relationships support")
  11233. (description "Mito is yet another object relational mapper, and it aims
  11234. to be a successor of Integral.
  11235. @itemize
  11236. @item Support MySQL, PostgreSQL and SQLite3.
  11237. @item Add id (serial/uuid primary key), created_at and updated_at by default
  11238. like Ruby's ActiveRecord.
  11239. @item Migrations.
  11240. @item Database schema versioning.
  11241. @end itemize\n")
  11242. (license license:llgpl))))
  11243. (define-public cl-mito
  11244. (sbcl-package->cl-source-package sbcl-mito))
  11245. (define-public ecl-mito
  11246. (sbcl-package->ecl-package sbcl-mito))
  11247. (define-public sbcl-kebab
  11248. (let ((commit "e7f77644c4e46131e7b8039d191d35fe6211f31b")
  11249. (revision "1"))
  11250. (package
  11251. (name "sbcl-kebab")
  11252. (version (git-version "0.1" revision commit))
  11253. (home-page "https://github.com/pocket7878/kebab")
  11254. (source
  11255. (origin
  11256. (method git-fetch)
  11257. (uri (git-reference
  11258. (url home-page)
  11259. (commit commit)))
  11260. (file-name (git-file-name name version))
  11261. (sha256
  11262. (base32 "0j5haabnvj0vz0rx9mwyfsb3qzpga9nickbjw8xs6vypkdzlqv1b"))))
  11263. (build-system asdf-build-system/sbcl)
  11264. (inputs
  11265. `(("cl-ppcre" ,sbcl-cl-ppcre)
  11266. ("alexandria" ,sbcl-alexandria)
  11267. ("cl-interpol" ,sbcl-cl-interpol)
  11268. ("split-sequence" ,sbcl-split-sequence)))
  11269. (native-inputs
  11270. (list sbcl-prove))
  11271. (arguments
  11272. ;; Tests passes but the phase fails with
  11273. ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">.
  11274. `(#:tests? #f))
  11275. (synopsis "Common Lisp case converter")
  11276. (description "This Common Lisp library converts strings, symbols and
  11277. keywords between any of the following typographical cases: PascalCase,
  11278. camelCase, snake_case, kebab-case (lisp-case).")
  11279. (license license:llgpl))))
  11280. (define-public cl-kebab
  11281. (sbcl-package->cl-source-package sbcl-kebab))
  11282. (define-public ecl-kebab
  11283. (sbcl-package->ecl-package sbcl-kebab))
  11284. (define-public sbcl-datafly
  11285. (let ((commit "adece27fcbc4b5ea39ad1a105048b6b7166e3b0d")
  11286. (revision "1"))
  11287. (package
  11288. (name "sbcl-datafly")
  11289. (version (git-version "0.1" revision commit))
  11290. (home-page "https://github.com/fukamachi/datafly")
  11291. (source
  11292. (origin
  11293. (method git-fetch)
  11294. (uri (git-reference
  11295. (url home-page)
  11296. (commit commit)))
  11297. (file-name (git-file-name name version))
  11298. (sha256
  11299. (base32 "16b78kzmglp2a4nxlxxl7rpf5zaibsgagn0p3c56fsxvx0c4hszv"))))
  11300. (build-system asdf-build-system/sbcl)
  11301. (inputs
  11302. `(("alexandria" ,sbcl-alexandria)
  11303. ("iterate" ,sbcl-iterate)
  11304. ("optima" ,sbcl-optima)
  11305. ("trivial-types" ,sbcl-trivial-types)
  11306. ("closer-mop" ,sbcl-closer-mop)
  11307. ("cl-syntax" ,sbcl-cl-syntax)
  11308. ("sxql" ,sbcl-sxql)
  11309. ("dbi" ,sbcl-dbi)
  11310. ("babel" ,sbcl-babel)
  11311. ("local-time" ,sbcl-local-time)
  11312. ("function-cache" ,sbcl-function-cache)
  11313. ("jonathan" ,sbcl-jonathan)
  11314. ("kebab" ,sbcl-kebab)
  11315. ("log4cl" ,sbcl-log4cl)))
  11316. (native-inputs
  11317. (list sbcl-prove))
  11318. (arguments
  11319. ;; TODO: Tests fail with
  11320. ;; While evaluating the form starting at line 22, column 0
  11321. ;; of #P"/tmp/guix-build-sbcl-datafly-0.1-1.adece27.drv-0/source/t/datafly.lisp":
  11322. ;; Unhandled SQLITE:SQLITE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
  11323. ;; {10009F8083}>:
  11324. ;; Error when binding parameter 1 to value NIL.
  11325. ;; Code RANGE: column index out of range.
  11326. `(#:tests? #f))
  11327. (synopsis "Lightweight database library for Common Lisp")
  11328. (description "Datafly is a lightweight database library for Common Lisp.")
  11329. (license license:bsd-3))))
  11330. (define-public cl-datafly
  11331. (sbcl-package->cl-source-package sbcl-datafly))
  11332. (define-public ecl-datafly
  11333. (sbcl-package->ecl-package sbcl-datafly))
  11334. (define-public sbcl-do-urlencode
  11335. (let ((commit "199846441dad5dfac5478b8dee4b4e20d107af6a")
  11336. (revision "1"))
  11337. (package
  11338. (name "sbcl-do-urlencode")
  11339. (version (git-version "0.0.0" revision commit))
  11340. (home-page "https://github.com/drdo/do-urlencode")
  11341. (source
  11342. (origin
  11343. (method git-fetch)
  11344. (uri (git-reference
  11345. (url home-page)
  11346. (commit commit)))
  11347. (file-name (git-file-name name version))
  11348. (sha256
  11349. (base32 "0k2i3d4k9cpci235mwfm0c5a4yqfkijr716bjv7cdlpzx88lazm9"))))
  11350. (build-system asdf-build-system/sbcl)
  11351. (inputs
  11352. (list sbcl-alexandria sbcl-babel))
  11353. (synopsis "Percent Encoding (aka URL Encoding) Common Lisp library")
  11354. (description "This library provides trivial percent encoding and
  11355. decoding functions for URLs.")
  11356. (license license:isc))))
  11357. (define-public cl-do-urlencode
  11358. (sbcl-package->cl-source-package sbcl-do-urlencode))
  11359. (define-public ecl-do-urlencode
  11360. (sbcl-package->ecl-package sbcl-do-urlencode))
  11361. (define-public sbcl-cl-emb
  11362. (let ((commit "fd8652174d048d4525a81f38cdf42f4fa519f840")
  11363. (revision "1"))
  11364. (package
  11365. (name "sbcl-cl-emb")
  11366. (version (git-version "0.4.3" revision commit))
  11367. (home-page "https://common-lisp.net/project/cl-emb/")
  11368. (source
  11369. (origin
  11370. (method git-fetch)
  11371. (uri (git-reference
  11372. (url "https://github.com/38a938c2/cl-emb")
  11373. (commit commit)))
  11374. (file-name (git-file-name name version))
  11375. (sha256
  11376. (base32 "1xcm31n7afh5316lwz8iqbjx7kn5lw0l11arg8mhdmkx42aj4gkk"))))
  11377. (build-system asdf-build-system/sbcl)
  11378. (inputs
  11379. (list sbcl-cl-ppcre))
  11380. (synopsis "Templating system for Common Lisp")
  11381. (description "A mixture of features from eRuby and HTML::Template. You
  11382. could name it \"Yet Another LSP\" (LispServer Pages) but it's a bit more than
  11383. that and not limited to a certain server or text format.")
  11384. (license license:llgpl))))
  11385. (define-public cl-emb
  11386. (sbcl-package->cl-source-package sbcl-cl-emb))
  11387. (define-public ecl-cl-emb
  11388. (sbcl-package->ecl-package sbcl-cl-emb))
  11389. (define-public sbcl-cl-project
  11390. (let ((commit "151107014e534fc4666222d57fec2cc8549c8814")
  11391. (revision "1"))
  11392. (package
  11393. (name "sbcl-cl-project")
  11394. (version (git-version "0.3.1" revision commit))
  11395. (home-page "https://github.com/fukamachi/cl-project")
  11396. (source
  11397. (origin
  11398. (method git-fetch)
  11399. (uri (git-reference
  11400. (url home-page)
  11401. (commit commit)))
  11402. (file-name (git-file-name name version))
  11403. (sha256
  11404. (base32 "1rmh6s1ncv8s2yrr14ja9wisgg745sq6xibqwb341ikdicxdp26y"))))
  11405. (build-system asdf-build-system/sbcl)
  11406. (inputs
  11407. `(("cl-emb" ,sbcl-cl-emb)
  11408. ("cl-ppcre" ,sbcl-cl-ppcre)
  11409. ("local-time" ,sbcl-local-time)
  11410. ("prove" ,sbcl-prove)))
  11411. (arguments
  11412. ;; Tests depend on caveman, which in turns depends on cl-project.
  11413. '(#:tests? #f
  11414. #:asd-files '("cl-project.asd")))
  11415. (synopsis "Generate a skeleton for modern Common Lisp projects")
  11416. (description "This library provides a modern project skeleton generator.
  11417. In contract with other generators, CL-Project generates one package per file
  11418. and encourages unit testing by generating a system for unit testing, so you
  11419. can begin writing unit tests as soon as the project is generated.")
  11420. (license license:llgpl))))
  11421. (define-public cl-project
  11422. (sbcl-package->cl-source-package sbcl-cl-project))
  11423. (define-public ecl-cl-project
  11424. (sbcl-package->ecl-package sbcl-cl-project))
  11425. (define-public sbcl-caveman
  11426. (let ((commit "35cd8bc6c322f9d88498405fc26168a1fb42ae1c") ; No release since 2012
  11427. (revision "2"))
  11428. (package
  11429. (name "sbcl-caveman")
  11430. (version (git-version "2.4.0" revision commit))
  11431. (home-page "http://8arrow.org/caveman/")
  11432. (source
  11433. (origin
  11434. (method git-fetch)
  11435. (uri (git-reference
  11436. (url "https://github.com/fukamachi/caveman/")
  11437. (commit commit)))
  11438. (file-name (git-file-name "cl-caveman" version))
  11439. (sha256
  11440. (base32 "1wvjm9m1fnapg0r9imhhcwgnhhqkkccnj3c0iw9yg1f72d7zhm2w"))))
  11441. (build-system asdf-build-system/sbcl)
  11442. (inputs
  11443. `(("ningle" ,cl-ningle)
  11444. ("lack" ,sbcl-lack)
  11445. ("cl-project" ,sbcl-cl-project)
  11446. ("dbi" ,sbcl-dbi)
  11447. ("sxql" ,sbcl-sxql)
  11448. ("cl-syntax" ,sbcl-cl-syntax)
  11449. ("myway" ,sbcl-myway)
  11450. ("quri" ,sbcl-quri)))
  11451. (native-inputs
  11452. `(("usocket" ,sbcl-usocket)
  11453. ("dexador" ,sbcl-dexador)
  11454. ("lack" ,sbcl-lack)
  11455. ("trivial-types" ,sbcl-trivial-types)
  11456. ("prove" ,sbcl-prove)))
  11457. (arguments
  11458. `(#:asd-files '("caveman2.asd"
  11459. "caveman2-db.asd"
  11460. "caveman2-test.asd"
  11461. "caveman-middleware-dbimanager.asd")
  11462. #:test-asd-file "caveman2-test.asd"
  11463. #:asd-systems '("caveman2"
  11464. "caveman2-db"
  11465. "caveman2-test"
  11466. "caveman-middleware-dbimanager")
  11467. ;; TODO: Tests fail with:
  11468. ;; writing /gnu/store/...-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
  11469. ;; While evaluating the form starting at line 38, column 0
  11470. ;; of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp":
  11471. ;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
  11472. ;; {10009F8083}>:
  11473. ;; Component "myapp573" not found
  11474. ;;
  11475. ;; The above myapp573 component name is randomly generated by
  11476. ;; gensym on each test run. `(asdf:load-system *app-name*)` tries
  11477. ;; to load this component and fails.
  11478. ;; TODO: Ask fukamachi how to go around this.
  11479. #:tests? #f))
  11480. (synopsis "Lightweight web application framework in Common Lisp")
  11481. (description "Caveman is intended to be a collection of common parts for
  11482. web applications. Caveman2 has three design goals:
  11483. @itemize
  11484. @item Be extensible.
  11485. @item Be practical.
  11486. @item Don't force anything.
  11487. @end itemize\n")
  11488. (license license:llgpl))))
  11489. (define-public cl-caveman
  11490. (package
  11491. (inherit
  11492. (sbcl-package->cl-source-package sbcl-caveman))
  11493. (propagated-inputs
  11494. `(("ningle" ,cl-ningle)))))
  11495. (define-public ecl-caveman
  11496. (sbcl-package->ecl-package sbcl-caveman))
  11497. (define-public sbcl-lambda-fiddle
  11498. (let ((commit "d16bba55acf6065b412f64ab8fdff679a4a32b1e") ;; no tagged branch
  11499. (revision "1"))
  11500. (package
  11501. (name "sbcl-lambda-fiddle")
  11502. (version (git-version "1.0.0" revision commit))
  11503. (source
  11504. (origin
  11505. (method git-fetch)
  11506. (uri (git-reference
  11507. (url "https://github.com/Shinmera/lambda-fiddle")
  11508. (commit commit)))
  11509. (file-name (git-file-name name version))
  11510. (sha256
  11511. (base32 "1zarj1pqjqmk95kdx1axkgpwy2wq3canczk7f9z5hvaw5an6gand"))))
  11512. (build-system asdf-build-system/sbcl)
  11513. (home-page "https://github.com/Shinmera/lambda-fiddle")
  11514. (synopsis "Collection of utilities to process lambda-lists")
  11515. (description "This collection of utilities is useful in contexts where
  11516. you want a macro that uses lambda-lists in some fashion but need more precise
  11517. processing.")
  11518. (license license:zlib))))
  11519. (define-public cl-lambda-fiddle
  11520. (sbcl-package->cl-source-package sbcl-lambda-fiddle))
  11521. (define-public ecl-lambda-fiddle
  11522. (sbcl-package->ecl-package sbcl-lambda-fiddle))
  11523. (define-public sbcl-xmls
  11524. (let ((commit "18546f0850b1338e03997ffd1696add1cb1800d1") ;; no tagged branch
  11525. (revision "1"))
  11526. (package
  11527. (name "sbcl-xmls")
  11528. (version (git-version "3.0.2" revision commit))
  11529. (source
  11530. (origin
  11531. (method git-fetch)
  11532. (uri (git-reference
  11533. (url "https://github.com/rpgoldman/xmls")
  11534. (commit commit)))
  11535. (file-name (git-file-name name version))
  11536. (sha256
  11537. (base32 "1lmvfml2ldbb1wkhm25jqqk2bhwsz52hhcgljbnzj1xr8xhc3anp"))))
  11538. (native-inputs
  11539. (list sbcl-fiveam))
  11540. (build-system asdf-build-system/sbcl)
  11541. (home-page "https://github.com/rpgoldman/xmls")
  11542. (synopsis "Non-validating XML parser for Common Lisp")
  11543. (description "Xmls is a self-contained, easily embedded parser that
  11544. recognizes a useful subset of the XML spec. It provides a simple mapping from
  11545. XML to Lisp structures or s-expressions and back.")
  11546. (license license:bsd-2))))
  11547. (define-public cl-xmls
  11548. (sbcl-package->cl-source-package sbcl-xmls))
  11549. (define-public ecl-xmls
  11550. (let ((pkg (sbcl-package->ecl-package sbcl-xmls)))
  11551. (package
  11552. (inherit pkg)
  11553. (arguments
  11554. (substitute-keyword-arguments (package-arguments pkg)
  11555. ;; Upstream doesn't have a test suite adapted for ECL.
  11556. ((#:tests? _ #f) #f))))))
  11557. (define-public sbcl-geco
  11558. (let ((commit "db13c9384491092975f46f6a837ccdc04681a93a")
  11559. (revision "1"))
  11560. (package
  11561. (name "sbcl-geco")
  11562. (version (git-version "2.1.2" revision commit))
  11563. (source
  11564. (origin
  11565. (method git-fetch)
  11566. (uri (git-reference
  11567. (url "https://github.com/gpwwjr/GECO")
  11568. (commit commit)))
  11569. (file-name (git-file-name "cl-geco" version))
  11570. (sha256
  11571. (base32 "1ncaf9ab7jz59zmga0p97blsjjb1m6db0qih57wipfhqdb5ylz17"))))
  11572. (build-system asdf-build-system/sbcl)
  11573. (home-page "https://github.com/gpwwjr/GECO")
  11574. (synopsis "Genetic algorithm toolkit for Common Lisp")
  11575. (description
  11576. "GECO (Genetic Evolution through Combination of Objects) is an
  11577. extensible, object-oriented framework for prototyping genetic algorithms in
  11578. Common Lisp.")
  11579. (license license:lgpl2.0+))))
  11580. (define-public cl-geco
  11581. (sbcl-package->cl-source-package sbcl-geco))
  11582. (define-public ecl-geco
  11583. (sbcl-package->ecl-package sbcl-geco))
  11584. (define-public sbcl-html-entities
  11585. (let ((commit "4af018048e891f41d77e7d680ed3aeb639e1eedb"))
  11586. (package
  11587. (name "sbcl-html-entities")
  11588. (version (git-version "0.02" "1" commit))
  11589. (source
  11590. (origin
  11591. (method git-fetch)
  11592. (uri (git-reference
  11593. (url "https://github.com/BnMcGn/html-entities/")
  11594. (commit commit)))
  11595. (file-name (git-file-name name version))
  11596. (sha256
  11597. (base32 "1b2yl6lf6vis17y4n5s505p7ica96bdafcl6vydy1hg50fy33nfr"))))
  11598. (build-system asdf-build-system/sbcl)
  11599. (inputs
  11600. (list sbcl-cl-ppcre))
  11601. (native-inputs
  11602. (list sbcl-fiveam))
  11603. (home-page "https://github.com/BnMcGn/html-entities/")
  11604. (synopsis "Encode and decode entities in HTML with Common Lisp")
  11605. (description "Html-entities is a Common Lisp library that lets you
  11606. encode and decode entities in HTML.")
  11607. (license license:expat))))
  11608. (define-public cl-html-entities
  11609. (sbcl-package->cl-source-package sbcl-html-entities))
  11610. (define-public ecl-html-entities
  11611. (sbcl-package->ecl-package sbcl-html-entities))
  11612. (define-public sbcl-quicksearch
  11613. (let ((commit "fb02ecf7c876ec580ab18c7d2c8c7814c06af599"))
  11614. (package
  11615. (name "sbcl-quicksearch")
  11616. (version (git-version "0.01.04" "1" commit))
  11617. (source
  11618. (origin
  11619. (method git-fetch)
  11620. (uri (git-reference
  11621. (url "https://github.com/tkych/quicksearch/")
  11622. (commit commit)))
  11623. (file-name (git-file-name name version))
  11624. (sha256
  11625. (base32 "16k19zjkhh7r64vjq371k5jwjs7cdfjz83flh561n4h4v1z89fps"))))
  11626. (build-system asdf-build-system/sbcl)
  11627. (inputs
  11628. (list sbcl-bordeaux-threads
  11629. sbcl-iterate
  11630. sbcl-alexandria
  11631. sbcl-anaphora
  11632. sbcl-cl-ppcre
  11633. sbcl-drakma
  11634. sbcl-html-entities
  11635. sbcl-yason
  11636. sbcl-flexi-streams
  11637. sbcl-do-urlencode))
  11638. (home-page "https://github.com/tkych/quicksearch/")
  11639. (synopsis "Search Engine Interface for Common Lisp packages")
  11640. (description "Quicksearch is a search-engine-interface for Common Lisp.
  11641. The goal of Quicksearch is to find the Common Lisp library quickly. For
  11642. example, if you will find the library about json, just type @code{(qs:?
  11643. 'json)} at REPL.
  11644. The function @code{quicksearch} searches for Common Lisp projects in
  11645. Quicklisp, Cliki, GitHub and BitBucket, then outputs results in REPL. The
  11646. function @code{?} is abbreviation wrapper for @code{quicksearch}.")
  11647. (license license:expat))))
  11648. (define-public cl-quicksearch
  11649. (sbcl-package->cl-source-package sbcl-quicksearch))
  11650. (define-public ecl-quicksearch
  11651. (sbcl-package->ecl-package sbcl-quicksearch))
  11652. (define-public sbcl-agutil
  11653. (let ((commit "df188d754d472da9faa1601a48f1f37bb7b34d68"))
  11654. (package
  11655. (name "sbcl-agutil")
  11656. (version (git-version "0.0.1" "1" commit))
  11657. (source
  11658. (origin
  11659. (method git-fetch)
  11660. (uri (git-reference
  11661. (url "https://github.com/alex-gutev/agutil/")
  11662. (commit commit)))
  11663. (file-name (git-file-name name version))
  11664. (sha256
  11665. (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf"))))
  11666. (build-system asdf-build-system/sbcl)
  11667. (inputs
  11668. (list sbcl-alexandria sbcl-trivia))
  11669. (home-page "https://github.com/alex-gutev/agutil/")
  11670. (synopsis "Collection of Common Lisp utilities")
  11671. (description "A collection of Common Lisp utility functions and macros
  11672. mostly not found in other utility packages.")
  11673. (license license:expat))))
  11674. (define-public cl-agutil
  11675. (sbcl-package->cl-source-package sbcl-agutil))
  11676. (define-public ecl-agutil
  11677. (sbcl-package->ecl-package sbcl-agutil))
  11678. (define-public sbcl-custom-hash-table
  11679. (let ((commit "f26983133940f5edf826ebbc8077acc04816ddfa"))
  11680. (package
  11681. (name "sbcl-custom-hash-table")
  11682. (version (git-version "0.3" "1" commit))
  11683. (source
  11684. (origin
  11685. (method git-fetch)
  11686. (uri (git-reference
  11687. (url "https://github.com/metawilm/cl-custom-hash-table")
  11688. (commit commit)))
  11689. (file-name (git-file-name name version))
  11690. (sha256
  11691. (base32 "1k4mvrpbqqds2fwjxp1bxmrfmr8ch4dkwhnkbw559knbqshvrlj5"))))
  11692. (build-system asdf-build-system/sbcl)
  11693. (arguments
  11694. '(#:asd-files '("cl-custom-hash-table.asd")
  11695. #:asd-systems '("cl-custom-hash-table")))
  11696. (home-page "https://github.com/metawilm/cl-custom-hash-table")
  11697. (synopsis "Custom hash tables for Common Lisp")
  11698. (description "This library allows creation of hash tables with arbitrary
  11699. @code{test}/@code{hash} functions, in addition to the @code{test} functions
  11700. allowed by the standard (@code{EQ}, @code{EQL}, @code{EQUAL} and
  11701. @code{EQUALP}), even in implementations that don't support this functionality
  11702. directly.")
  11703. (license license:expat))))
  11704. (define-public cl-custom-hash-table
  11705. (sbcl-package->cl-source-package sbcl-custom-hash-table))
  11706. (define-public ecl-custom-hash-table
  11707. (sbcl-package->ecl-package sbcl-custom-hash-table))
  11708. (define-public sbcl-collectors
  11709. (let ((commit "13acef25d8422d1d82e067b1861e513587c166ee"))
  11710. (package
  11711. (name "sbcl-collectors")
  11712. (version (git-version "0.1" "1" commit))
  11713. (source
  11714. (origin
  11715. (method git-fetch)
  11716. (uri (git-reference
  11717. (url "https://github.com/AccelerationNet/collectors")
  11718. (commit commit)))
  11719. (file-name (git-file-name name version))
  11720. (sha256
  11721. (base32 "1si68n1j6rpns8jw6ksqjpb937pdl30v7xza8rld7j5vh0jhy2yi"))))
  11722. (build-system asdf-build-system/sbcl)
  11723. (inputs
  11724. (list sbcl-alexandria sbcl-closer-mop sbcl-symbol-munger))
  11725. (native-inputs
  11726. (list sbcl-lisp-unit2))
  11727. (home-page "https://github.com/AccelerationNet/collectors/")
  11728. (synopsis "Common lisp library providing collector macros")
  11729. (description "A small collection of common lisp macros to make
  11730. collecting values easier.")
  11731. (license license:bsd-3))))
  11732. (define-public cl-collectors
  11733. (sbcl-package->cl-source-package sbcl-collectors))
  11734. (define-public ecl-collectors
  11735. (sbcl-package->ecl-package sbcl-collectors))
  11736. (define-public sbcl-cl-environments
  11737. (package
  11738. (name "sbcl-cl-environments")
  11739. (version "0.4")
  11740. (source
  11741. (origin
  11742. (method git-fetch)
  11743. (uri (git-reference
  11744. (url "https://github.com/alex-gutev/cl-environments")
  11745. (commit (string-append "v" version))))
  11746. (file-name (git-file-name "cl-environments" version))
  11747. (sha256
  11748. (base32 "10jxj043d2dw5vc0i0lz0lsa4qszn8him5is8jdhl4nsyfcazmky"))))
  11749. (build-system asdf-build-system/sbcl)
  11750. (inputs
  11751. (list sbcl-alexandria sbcl-anaphora sbcl-collectors sbcl-optima))
  11752. (native-inputs
  11753. (list sbcl-prove))
  11754. (home-page "https://github.com/alex-gutev/cl-environments")
  11755. (synopsis "Implements the Common Lisp standard environment access API")
  11756. (description
  11757. "This library provides a uniform API, as specified in Common Lisp the
  11758. Language 2, for accessing information about variable and function bindings
  11759. from implementation-defined lexical environment objects. All major Common
  11760. Lisp implementations are supported, even those which don't support the CLTL2
  11761. environment access API.")
  11762. (license license:expat)))
  11763. (define-public cl-environments
  11764. (sbcl-package->cl-source-package sbcl-cl-environments))
  11765. (define-public ecl-cl-environments
  11766. (sbcl-package->ecl-package sbcl-cl-environments))
  11767. (define-public sbcl-static-dispatch
  11768. (package
  11769. (name "sbcl-static-dispatch")
  11770. (version "0.5.1")
  11771. (source
  11772. (origin
  11773. (method git-fetch)
  11774. (uri (git-reference
  11775. (url "https://github.com/alex-gutev/static-dispatch")
  11776. (commit (string-append "v" version))))
  11777. (file-name (git-file-name "static-dispatch" version))
  11778. (sha256
  11779. (base32 "1602vx6ybp0n8mbrrp6q8397fkkyvhrqpahc302pjdb57qildajz"))))
  11780. (build-system asdf-build-system/sbcl)
  11781. (native-inputs
  11782. (list sbcl-fiveam))
  11783. (inputs
  11784. (list sbcl-agutil
  11785. sbcl-alexandria
  11786. sbcl-anaphora
  11787. sbcl-arrows
  11788. sbcl-cl-environments
  11789. sbcl-closer-mop
  11790. sbcl-iterate
  11791. sbcl-optima))
  11792. (home-page "https://github.com/alex-gutev/static-dispatch")
  11793. (synopsis "Static generic function dispatch for Common Lisp")
  11794. (description "Static dispatch is a Common Lisp library, inspired by
  11795. @code{inlined-generic-function}, which allows standard Common Lisp generic
  11796. function dispatch to be performed statically (at compile time) rather than
  11797. dynamically (runtime). This is similar to what is known as \"overloading\" in
  11798. languages such as C++ and Java.
  11799. The purpose of static dispatch is to provide an optimization in cases where
  11800. the usual dynamic dispatch is too slow, and the dynamic features of generic
  11801. functions, such as adding/removing methods at runtime are not required. An
  11802. example of such a case is a generic equality comparison function. Currently
  11803. generic functions are considered far too slow to implement generic arithmetic
  11804. and comparison operations when used heavily in numeric code.")
  11805. (license license:expat)))
  11806. (define-public cl-static-dispatch
  11807. (sbcl-package->cl-source-package sbcl-static-dispatch))
  11808. (define-public ecl-static-dispatch
  11809. (sbcl-package->ecl-package sbcl-static-dispatch))
  11810. (define-public sbcl-cl-form-types
  11811. (package
  11812. (name "sbcl-cl-form-types")
  11813. (version "0.3.1")
  11814. (source
  11815. (origin
  11816. (method git-fetch)
  11817. (uri (git-reference
  11818. (url "https://github.com/alex-gutev/cl-form-types")
  11819. (commit (string-append "v" version))))
  11820. (file-name (git-file-name name version))
  11821. (sha256
  11822. (base32
  11823. "17kdjqmm2ib347b8lqm3k4kca2j53kr0azb6h7m0v5i157ibndsw"))))
  11824. (build-system asdf-build-system/sbcl)
  11825. (inputs
  11826. (list sbcl-agutil
  11827. sbcl-anaphora
  11828. sbcl-arrows
  11829. sbcl-cl-environments
  11830. sbcl-introspect-environment
  11831. sbcl-optima))
  11832. (native-inputs
  11833. (list sbcl-fiveam))
  11834. (home-page "https://github.com/alex-gutev/cl-form-types")
  11835. (synopsis "determining the types of Common Lisp forms")
  11836. (description "This library provides functions for determining the value
  11837. types of Common Lisp forms, based on type information contained in the
  11838. environment.
  11839. In order for this library to work the values types of variables and return
  11840. types of functions have to be declared.
  11841. Macros and symbol-macros are fully expanded and all special forms, except
  11842. @code{CATCH}, are supported.")
  11843. (license license:expat)))
  11844. (define-public cl-form-types
  11845. (sbcl-package->cl-source-package sbcl-cl-form-types))
  11846. (define-public ecl-cl-form-types
  11847. (sbcl-package->ecl-package sbcl-cl-form-types))
  11848. (define-public sbcl-generic-cl
  11849. (package
  11850. (name "sbcl-generic-cl")
  11851. (version "0.9")
  11852. (source
  11853. (origin
  11854. (method git-fetch)
  11855. (uri (git-reference
  11856. (url "https://github.com/alex-gutev/generic-cl")
  11857. (commit (string-append "v" version))))
  11858. (file-name (git-file-name name version))
  11859. (sha256
  11860. (base32
  11861. "1c40vqb49g0adfv17jxgk0ds1n6a2dph30cibq01sicmqdgrrbi8"))))
  11862. (build-system asdf-build-system/sbcl)
  11863. (inputs
  11864. `(("agutil" ,sbcl-agutil)
  11865. ("alexandria" ,sbcl-alexandria)
  11866. ("anaphora" ,sbcl-anaphora)
  11867. ("arrows" ,sbcl-arrows)
  11868. ("cl-custom-hash-table" ,sbcl-custom-hash-table)
  11869. ("cl-form-types" ,sbcl-cl-form-types)
  11870. ("static-dispatch" ,sbcl-static-dispatch)
  11871. ("trivia" ,sbcl-trivia)))
  11872. (native-inputs
  11873. (list sbcl-prove))
  11874. (arguments
  11875. ;; Tests fail because SBCL head size is not high enough.
  11876. ;; https://github.com/alex-gutev/generic-cl/issues/6
  11877. `(#:tests? #f))
  11878. (home-page "https://alex-gutev.github.io/generic-cl/")
  11879. (synopsis "Generic function interface to standard Common Lisp functions")
  11880. (description "@code{generic-cl} provides a generic function wrapper over
  11881. various functions in the Common Lisp standard, such as equality predicates and
  11882. sequence operations. The goal of this wrapper is to provide a standard
  11883. interface to common operations, such as testing for the equality of two
  11884. objects, which is extensible to user-defined types.")
  11885. (license license:expat)))
  11886. (define-public cl-generic-cl
  11887. (sbcl-package->cl-source-package sbcl-generic-cl))
  11888. (define-public ecl-generic-cl
  11889. (sbcl-package->ecl-package sbcl-generic-cl))
  11890. (define-public sbcl-defpackage-plus
  11891. (let ((revision "0")
  11892. (commit "5492e27e0bdb7b75fa5177ea4388519dc7a75f11"))
  11893. (package
  11894. (name "sbcl-defpackage-plus")
  11895. (version (git-version "1.0" revision commit))
  11896. (source
  11897. (origin
  11898. (method git-fetch)
  11899. (uri (git-reference
  11900. (url "https://github.com/rpav/defpackage-plus")
  11901. (commit commit)))
  11902. (file-name (git-file-name name version))
  11903. (sha256
  11904. (base32 "0lzljvf343xb6mlh6lni2i27hpm5qd376522mk6hr2pa20vd6rdq"))))
  11905. (build-system asdf-build-system/sbcl)
  11906. (inputs
  11907. (list sbcl-alexandria))
  11908. (home-page "https://github.com/rpav/defpackage-plus")
  11909. (synopsis "Extensible @code{DEFPACKAGE} variant with version support")
  11910. (description
  11911. "@code{DEFPACKAGE-PLUS} is an extensible @code{DEFPACKAGE} variant with
  11912. predictable cross-platform behavior and some utilities useful for versioning.")
  11913. (license license:bsd-2))))
  11914. (define-public cl-defpackage-plus
  11915. (sbcl-package->cl-source-package sbcl-defpackage-plus))
  11916. (define-public ecl-defpackage-plus
  11917. (sbcl-package->ecl-package sbcl-defpackage-plus))
  11918. (define-public sbcl-deploy
  11919. (let ((commit "9b20e64fe924b9e31832304d87a3a72c383dc6d8")
  11920. (revision "2"))
  11921. (package
  11922. (name "sbcl-deploy")
  11923. (version (git-version "1.0.0" revision commit))
  11924. (source
  11925. (origin
  11926. (method git-fetch)
  11927. (uri (git-reference
  11928. (url "https://github.com/Shinmera/deploy")
  11929. (commit commit)))
  11930. (file-name (git-file-name "deploy" version))
  11931. (sha256
  11932. (base32 "07pfkibaridihg8lbq2czwa4iqifqk24n6rx7bfnv7i49p1ppja1"))))
  11933. (build-system asdf-build-system/sbcl)
  11934. (arguments
  11935. `(#:test-asd-file "deploy-test.asd"
  11936. #:asd-files '("deploy.asd"
  11937. "deploy-test.asd")))
  11938. (native-inputs
  11939. `(("cl-mpg123" ,sbcl-cl-mpg123)
  11940. ("cl-out123" ,sbcl-cl-out123)))
  11941. (inputs
  11942. `(("cffi" ,sbcl-cffi)
  11943. ("documentation-utils" ,sbcl-documentation-utils)
  11944. ("trivial-features" ,sbcl-trivial-features)))
  11945. (home-page "https://shinmera.github.io/deploy/")
  11946. (synopsis "Deployment tools for standalone Common Lisp application")
  11947. (description
  11948. "This is a system to help you easily and quickly deploy standalone
  11949. common lisp applications as binaries. Specifically it is geared towards
  11950. applications with foreign library dependencies that run some kind of GUI.")
  11951. (license license:artistic2.0))))
  11952. (define-public cl-deploy
  11953. (sbcl-package->cl-source-package sbcl-deploy))
  11954. (define-public ecl-deploy
  11955. (sbcl-package->ecl-package sbcl-deploy))
  11956. (define-public sbcl-deeds
  11957. ;; taged branch is outdated
  11958. (let ((revision "1")
  11959. (commit "f5df54eac79b58a34030e0eb8acf3952c788410d"))
  11960. (package
  11961. (name "sbcl-deeds")
  11962. (version (git-version "1.1.1" revision commit))
  11963. (source
  11964. (origin
  11965. (method git-fetch)
  11966. (uri (git-reference
  11967. (url "https://github.com/Shinmera/deeds")
  11968. (commit commit)))
  11969. (file-name (git-file-name name version))
  11970. (sha256
  11971. (base32 "062cnb2dwli6pw3zvv46jfxyxdzcbzwsck5pa6nw03qf1j1hyg3k"))))
  11972. (build-system asdf-build-system/sbcl)
  11973. (inputs
  11974. (list sbcl-bordeaux-threads sbcl-closer-mop sbcl-form-fiddle
  11975. sbcl-lambda-fiddle))
  11976. (home-page "https://github.com/Shinmera/deeds")
  11977. (synopsis "Extensible Event Delivery System")
  11978. (description
  11979. "@code{deeds} allows for efficient event delivery to multiple handlers
  11980. with a complex event filtering system.")
  11981. (license license:zlib))))
  11982. (define-public cl-deeds
  11983. (sbcl-package->cl-source-package sbcl-deeds))
  11984. (define-public ecl-deeds
  11985. (sbcl-package->ecl-package sbcl-deeds))
  11986. (define-public sbcl-make-hash
  11987. ;; no tagged branch
  11988. (let ((revision "1")
  11989. (commit "ae0909cd8e697520a1085fac6f54ac2b448ebd21"))
  11990. (package
  11991. (name "sbcl-make-hash")
  11992. (version (git-version "1.0.2" revision commit))
  11993. (source
  11994. (origin
  11995. (method git-fetch)
  11996. (uri (git-reference
  11997. (url "https://github.com/genovese/make-hash")
  11998. (commit commit)))
  11999. (file-name (git-file-name name version))
  12000. (sha256
  12001. (base32 "1qa4mcmb3pv44py0j129dd8hjx09c2akpnds53b69151mgwv5qz8"))))
  12002. (build-system asdf-build-system/sbcl)
  12003. (home-page "https://github.com/genovese/make-hash")
  12004. (synopsis "Common Lisp package for flexible hash table creation")
  12005. (description
  12006. "This is a Common Lisp package for hash table creation with flexible,
  12007. extensible initializers.")
  12008. (license license:bsd-3))))
  12009. (define-public cl-make-hash
  12010. (sbcl-package->cl-source-package sbcl-make-hash))
  12011. (define-public ecl-make-hash
  12012. (sbcl-package->ecl-package sbcl-make-hash))
  12013. (define-public sbcl-claw-support
  12014. (package
  12015. (name "sbcl-claw-support")
  12016. (version "1.0.0")
  12017. (source
  12018. (origin
  12019. (method git-fetch)
  12020. (uri (git-reference
  12021. (url "https://github.com/borodust/claw-support")
  12022. (commit "9a15c8bed04585f45e6a461bcda1b475144dbd0b")))
  12023. (file-name (git-file-name name version))
  12024. (sha256
  12025. (base32 "1my2ka7h72ipx5n3b465g6kjkasrhsvhqlijwcg6dhlzs5yygl23"))))
  12026. (build-system asdf-build-system/sbcl)
  12027. (home-page "https://github.com/borodust/claw-support")
  12028. (synopsis "Support routines for claw")
  12029. (description
  12030. "This package provides support routines for the @code{claw} Common Lisp
  12031. package.")
  12032. (license license:expat)))
  12033. (define-public cl-claw-support
  12034. (sbcl-package->cl-source-package sbcl-claw-support))
  12035. (define-public ecl-claw-support
  12036. (sbcl-package->ecl-package sbcl-claw-support))
  12037. (define-public sbcl-claw
  12038. (let ((revision "0")
  12039. (commit "3cd4a96fca95eb9e8d5d069426694669f81b2250"))
  12040. (package
  12041. (name "sbcl-claw")
  12042. (version (git-version "1.0" revision commit))
  12043. (source
  12044. (origin
  12045. (method git-fetch)
  12046. (uri (git-reference
  12047. (url "https://github.com/borodust/claw")
  12048. (commit commit)))
  12049. (file-name (git-file-name "claw" version))
  12050. (sha256
  12051. (base32 "146yv0hc4hmk72562ssj2d41143pp84dcbd1h7f4nx1c7hf2bb0d"))))
  12052. (build-system asdf-build-system/sbcl)
  12053. (inputs
  12054. (list sbcl-alexandria
  12055. sbcl-cffi
  12056. sbcl-cl-json
  12057. sbcl-cl-ppcre
  12058. sbcl-claw-support
  12059. sbcl-local-time
  12060. sbcl-trivial-features))
  12061. (home-page "https://github.com/borodust/claw")
  12062. (synopsis "Autowrapper for Common Lisp")
  12063. (description
  12064. "This is a Common Lisp autowrapping facility for quickly creating clean
  12065. and lean bindings to C libraries.")
  12066. (license license:bsd-2))))
  12067. (define-public cl-claw
  12068. (sbcl-package->cl-source-package sbcl-claw))
  12069. (define-public ecl-claw
  12070. (sbcl-package->ecl-package sbcl-claw))
  12071. (define-public sbcl-claw-utils
  12072. (let ((revision "0")
  12073. (commit "efe25016501973dc369f067a64c7d225802bc56f"))
  12074. (package
  12075. (name "sbcl-claw-utils")
  12076. ;; version is not specified
  12077. (version (git-version "0.0.0" revision commit))
  12078. (source
  12079. (origin
  12080. (method git-fetch)
  12081. (uri (git-reference
  12082. (url "https://github.com/borodust/claw-utils")
  12083. (commit commit)))
  12084. (file-name (git-file-name "claw-utils" version))
  12085. (sha256
  12086. (base32 "01df3kyf2qs3czi332dnz2s35x2j0fq46vgmsw7wjrrvnqc22mk5"))))
  12087. (build-system asdf-build-system/sbcl)
  12088. (inputs
  12089. (list sbcl-alexandria sbcl-cffi sbcl-claw))
  12090. (home-page "https://github.com/borodust/claw-utils")
  12091. (synopsis "Utilities for easier autowrapping")
  12092. (description
  12093. "This Common Lisp library contains various handy utilities to help
  12094. autowrapping with @code{claw}.")
  12095. (license license:expat))))
  12096. (define-public cl-claw-utils
  12097. (sbcl-package->cl-source-package sbcl-claw-utils))
  12098. (define-public ecl-claw-utils
  12099. (sbcl-package->ecl-package sbcl-claw-utils))
  12100. (define-public sbcl-array-operations
  12101. (let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b")
  12102. (revision "0"))
  12103. (package
  12104. (name "sbcl-array-operations")
  12105. (version (git-version "0.0.0" revision commit))
  12106. (source
  12107. (origin
  12108. (method git-fetch)
  12109. (uri (git-reference
  12110. (url "https://github.com/bendudson/array-operations")
  12111. (commit commit)))
  12112. (file-name (git-file-name "array-operations" version))
  12113. (sha256
  12114. (base32 "0ip49hhq32w80qsc7jmspyda5r2rsszvw0mk2r3341cld78sz9ya"))))
  12115. (build-system asdf-build-system/sbcl)
  12116. (native-inputs
  12117. (list sbcl-alexandria sbcl-clunit2))
  12118. (inputs
  12119. (list sbcl-let-plus))
  12120. (synopsis "Simple array operations library for Common Lisp")
  12121. (description
  12122. "This library is a collection of functions and macros for manipulating
  12123. Common Lisp arrays and performing numerical calculations with them.")
  12124. (home-page "https://github.com/bendudson/array-operations")
  12125. (license license:expat))))
  12126. (define-public cl-array-operations
  12127. (sbcl-package->cl-source-package sbcl-array-operations))
  12128. (define-public ecl-array-operations
  12129. (sbcl-package->ecl-package sbcl-array-operations))
  12130. (define-public sbcl-clml
  12131. (let ((commit "95505b54c8c7b4b27f500c3be97fa5732f4b51a8")
  12132. (revision "0"))
  12133. (package
  12134. (name "sbcl-clml")
  12135. (version (git-version "0.0.0" revision commit))
  12136. (source
  12137. (origin
  12138. (method git-fetch)
  12139. (uri (git-reference
  12140. (url "https://github.com/mmaul/clml")
  12141. (commit commit)))
  12142. (file-name (git-file-name "clml" version))
  12143. (sha256
  12144. (base32 "006pii59nmpc61n7p7h8ha5vjg6x0dya327i58z0rnvxs249h345"))
  12145. ;; TODO: Remove this when the patch has been merged upstream.
  12146. (patches (search-patches "sbcl-clml-fix-types.patch"))))
  12147. (build-system asdf-build-system/sbcl)
  12148. (inputs
  12149. (list sbcl-alexandria
  12150. sbcl-array-operations
  12151. sbcl-cl-fad
  12152. sbcl-cl-ppcre
  12153. sbcl-drakma
  12154. sbcl-introspect-environment
  12155. sbcl-iterate
  12156. sbcl-lparallel
  12157. sbcl-parse-number
  12158. sbcl-split-sequence
  12159. sbcl-trivial-garbage))
  12160. (synopsis "Common Lisp machine learning library")
  12161. (description
  12162. "CLML (Common Lisp Machine Learning) is a high performance and large
  12163. scale statistical machine learning package")
  12164. (home-page "https://mmaul.github.io/clml/")
  12165. (license license:llgpl))))
  12166. (define-public cl-clml
  12167. (sbcl-package->cl-source-package sbcl-clml))
  12168. (define-public sbcl-utm-ups
  12169. (let ((commit "ffcb7b6d5a56fb7d4b2b95b83bbd28ffe6e6961f")
  12170. (revision "0"))
  12171. (package
  12172. (name "sbcl-utm-ups")
  12173. (version (git-version "1.1" revision commit))
  12174. (source
  12175. (origin
  12176. (method git-fetch)
  12177. (uri (git-reference
  12178. (url "https://github.com/glv2/utm-ups")
  12179. (commit commit)))
  12180. (file-name (git-file-name "utm-ups" version))
  12181. (sha256
  12182. (base32 "1rvyh0srgd81kvbzmq4ysd9y6c0qdwh23naqxc9asw1vh7fq08x1"))))
  12183. (build-system asdf-build-system/sbcl)
  12184. (native-inputs
  12185. (list sbcl-fiveam))
  12186. (synopsis
  12187. "Convert coordinates between latitude/longitude and UTM or UPS")
  12188. (description
  12189. "This a Common Lisp library to convert geographic coordinates between
  12190. latitude/longitude and UTM (Universal Transverse Mercator) or UPS (Universal
  12191. Polar Stereographic).")
  12192. (home-page "https://github.com/glv2/utm-ups")
  12193. (license license:gpl3+))))
  12194. (define-public cl-utm-ups
  12195. (sbcl-package->cl-source-package sbcl-utm-ups))
  12196. (define-public ecl-utm-ups
  12197. (sbcl-package->ecl-package sbcl-utm-ups))
  12198. (define-public sbcl-mgrs
  12199. (let ((commit "c06f268f9ccb00dfc94c8a07771ce1ca82df26a2")
  12200. (revision "1"))
  12201. (package
  12202. (name "sbcl-mgrs")
  12203. (version (git-version "1.0" revision commit))
  12204. (source
  12205. (origin
  12206. (method git-fetch)
  12207. (uri (git-reference
  12208. (url "https://github.com/glv2/mgrs")
  12209. (commit commit)))
  12210. (file-name (git-file-name "cl-mgrs" version))
  12211. (sha256
  12212. (base32 "1n4kd734qjj7mrcg0q28hml3npam1rm067iwljwc87zshnxh5gmn"))))
  12213. (build-system asdf-build-system/sbcl)
  12214. (native-inputs
  12215. (list sbcl-fiveam))
  12216. (inputs
  12217. (list sbcl-utm-ups))
  12218. (synopsis
  12219. "Convert coordinates between latitude/longitude and MGRS")
  12220. (description
  12221. "This a Common Lisp library to convert geographic coordinates between
  12222. latitude/longitude and MGRS.")
  12223. (home-page "https://github.com/glv2/mgrs")
  12224. (license license:gpl3+))))
  12225. (define-public cl-mgrs
  12226. (sbcl-package->cl-source-package sbcl-mgrs))
  12227. (define-public ecl-mgrs
  12228. (sbcl-package->ecl-package sbcl-mgrs))
  12229. (define-public sbcl-maidenhead
  12230. (let ((commit "202671f39a4c90c18016123685705533d43ccde6")
  12231. (revision "1"))
  12232. (package
  12233. (name "sbcl-maidenhead")
  12234. (version (git-version "1.0" revision commit))
  12235. (source
  12236. (origin
  12237. (method git-fetch)
  12238. (uri (git-reference
  12239. (url "https://github.com/glv2/maidenhead")
  12240. (commit commit)))
  12241. (file-name (git-file-name "cl-maidenhead" version))
  12242. (sha256
  12243. (base32 "0bkw31jibx4sh2086jgsw4rvaz3i1dmycbwp203rjj78x7wz9743"))))
  12244. (build-system asdf-build-system/sbcl)
  12245. (native-inputs
  12246. (list sbcl-fiveam))
  12247. (synopsis
  12248. "Convert coordinates between latitude/longitude and Maidenhead")
  12249. (description
  12250. "This a Common Lisp library to convert geographic coordinates between
  12251. latitude/longitude and Maidenhead locator system.")
  12252. (home-page "https://github.com/glv2/maidenhead")
  12253. (license license:gpl3+))))
  12254. (define-public cl-maidenhead
  12255. (sbcl-package->cl-source-package sbcl-maidenhead))
  12256. (define-public ecl-maidenhead
  12257. (sbcl-package->ecl-package sbcl-maidenhead))
  12258. (define-public sbcl-olc
  12259. (let ((commit "0269ed747477d967f7d9331964906b6a0f18a9c4")
  12260. (revision "1"))
  12261. (package
  12262. (name "sbcl-olc")
  12263. (version (git-version "1.0" revision commit))
  12264. (source
  12265. (origin
  12266. (method git-fetch)
  12267. (uri (git-reference
  12268. (url "https://github.com/glv2/olc")
  12269. (commit commit)))
  12270. (file-name (git-file-name "cl-olc" version))
  12271. (sha256
  12272. (base32 "02r6w9kfa6v4a12y2azmyjkxbn54r1y18c6a024vq4y6zp20fqnz"))))
  12273. (build-system asdf-build-system/sbcl)
  12274. (native-inputs
  12275. (list sbcl-fiveam))
  12276. (synopsis
  12277. "Convert coordinates between latitude/longitude and Open Location Code")
  12278. (description
  12279. "This a Common Lisp library to convert geographic coordinates between
  12280. latitude/longitude and Open Location Code.")
  12281. (home-page "https://github.com/glv2/olc")
  12282. (license license:gpl3+))))
  12283. (define-public cl-olc
  12284. (sbcl-package->cl-source-package sbcl-olc))
  12285. (define-public ecl-olc
  12286. (sbcl-package->ecl-package sbcl-olc))
  12287. (define-public sbcl-regex
  12288. (let ((commit "fbc9a9f313b9edc1788f33d4b23a29151635ae22"))
  12289. (package
  12290. (name "sbcl-regex")
  12291. (version (git-version "1" "1" commit))
  12292. (source
  12293. (origin
  12294. (method git-fetch)
  12295. (uri (git-reference
  12296. (url "https://github.com/michaelw/regex/")
  12297. (commit commit)))
  12298. (file-name (git-file-name name version))
  12299. (sha256
  12300. (base32 "0wq5wlafrxv13wg28hg5b10sc48b88swsvznpy2zg7x37m4nmm6a"))))
  12301. (build-system asdf-build-system/sbcl)
  12302. (home-page "https://github.com/michaelw/regex/")
  12303. (synopsis "Regular expression engine for Common Lisp")
  12304. (description
  12305. "This Common Lisp package provides a regular expression engine.")
  12306. (license license:bsd-2))))
  12307. (define-public cl-regex
  12308. (sbcl-package->cl-source-package sbcl-regex))
  12309. (define-public ecl-regex
  12310. (sbcl-package->ecl-package sbcl-regex))
  12311. (define-public sbcl-clawk
  12312. (let ((commit "3a91634df686417114044a98c063cbe76bfac7b6"))
  12313. (package
  12314. (name "sbcl-clawk")
  12315. (version (git-version "4" "1" commit))
  12316. (source
  12317. (origin
  12318. (method git-fetch)
  12319. (uri (git-reference
  12320. (url "https://github.com/sharplispers/clawk")
  12321. (commit commit)))
  12322. (file-name (git-file-name name version))
  12323. (sha256
  12324. (base32 "1ph3xjqilvinvgr9q3w47zxqyz1sqnq030nlx7kgkkv8j3bnqk7a"))))
  12325. (build-system asdf-build-system/sbcl)
  12326. (inputs
  12327. (list sbcl-regex))
  12328. (home-page "https://github.com/sharplispers/clawk")
  12329. (synopsis "Common Lisp AWK")
  12330. (description
  12331. "CLAWK is an AWK implementation embedded into Common Lisp.")
  12332. (license license:bsd-2))))
  12333. (define-public cl-clawk
  12334. (sbcl-package->cl-source-package sbcl-clawk))
  12335. (define-public ecl-clawk
  12336. (sbcl-package->ecl-package sbcl-clawk))
  12337. (define-public sbcl-clamp
  12338. (let ((commit "02b8f3953e5753cc61a719807c82f3795cd28fe1"))
  12339. (package
  12340. (name "sbcl-clamp")
  12341. (version (git-version "0.3" "1" commit))
  12342. (source
  12343. (origin
  12344. (method git-fetch)
  12345. (uri (git-reference
  12346. (url "https://github.com/arclanguage/Clamp")
  12347. (commit commit)))
  12348. (file-name (git-file-name name version))
  12349. (sha256
  12350. (base32 "0fdr9nqfmmpxm6hvjdxi1jkclya9xlnrw1yc3cn1m4ww3f50p31m"))))
  12351. (build-system asdf-build-system/sbcl)
  12352. (inputs
  12353. `(("iterate" ,sbcl-iterate)
  12354. ("cl-syntax" ,sbcl-cl-syntax)))
  12355. (native-inputs
  12356. `(("cl-unit" ,sbcl-clunit)
  12357. ("check-it" ,sbcl-check-it)))
  12358. (arguments
  12359. `(#:phases
  12360. (modify-phases %standard-phases
  12361. (add-after 'unpack 'fix-build
  12362. (lambda _
  12363. (substitute* "clamp.asd"
  12364. (("\\(:file \"read\" :depends-on \\(\"aliases\"\\)\\)")
  12365. "(:file \"read\" :depends-on (\"aliases\" \"base\"))"))
  12366. #t)))))
  12367. (home-page "https://github.com/arclanguage/Clamp")
  12368. (synopsis "Common Lisp with Arc macros and procedures")
  12369. (description
  12370. "Clamp is an attempt to bring the powerful, but verbose, language of
  12371. Common Lisp up to the terseness of Arc.
  12372. There are two parts to Clamp. There is the core of Clamp, which implements
  12373. the utilities of Arc that are easily converted from Arc to Common Lisp. The
  12374. other part is the \"experimental\" part. It contains features of Arc that are
  12375. not so easy to copy (ssyntax, argument destructuring, etc.).")
  12376. (license license:artistic2.0))))
  12377. (define-public cl-clamp
  12378. (sbcl-package->cl-source-package sbcl-clamp))
  12379. (define-public ecl-clamp
  12380. (sbcl-package->ecl-package sbcl-clamp))
  12381. (define-public sbcl-trivial-shell
  12382. (let ((commit "e02ec191b34b52deca5d1c4ee99d4fa13b8772e0"))
  12383. (package
  12384. (name "sbcl-trivial-shell")
  12385. (version (git-version "0.2.0" "1" commit))
  12386. (source
  12387. (origin
  12388. (method git-fetch)
  12389. (uri (git-reference
  12390. (url "https://github.com/gwkkwg/trivial-shell")
  12391. (commit commit)))
  12392. (file-name (git-file-name name version))
  12393. (sha256
  12394. (base32 "08mpkl5ij5sjfsyn8pq2kvsvpvyvr7ha1r8g1224fa667b8k2q85"))))
  12395. (build-system asdf-build-system/sbcl)
  12396. (native-inputs
  12397. (list sbcl-lift))
  12398. (home-page "http://common-lisp.net/project/trivial-shell/")
  12399. (synopsis "Common Lisp access to the shell")
  12400. (description
  12401. "A simple Common-Lisp interface to the underlying operating system.
  12402. It's independent of the implementation and operating system.")
  12403. (license license:expat))))
  12404. (define-public cl-trivial-shell
  12405. (sbcl-package->cl-source-package sbcl-trivial-shell))
  12406. (define-public ecl-trivial-shell
  12407. (sbcl-package->ecl-package sbcl-trivial-shell))
  12408. (define-public sbcl-clesh
  12409. (let ((commit "44e96e04a72e5bc006dc4eb02ce8962348dd4a11"))
  12410. (package
  12411. (name "sbcl-clesh")
  12412. (version (git-version "0.0.0" "1" commit))
  12413. (source
  12414. (origin
  12415. (method git-fetch)
  12416. (uri (git-reference
  12417. (url "https://github.com/Neronus/Clesh")
  12418. (commit commit)))
  12419. (file-name (git-file-name name version))
  12420. (sha256
  12421. (base32 "012ry02djnqyvvs61wbbqj3saz621w2l9gczrywdxhi5p4ycx318"))))
  12422. (build-system asdf-build-system/sbcl)
  12423. (inputs
  12424. (list sbcl-trivial-shell sbcl-named-readtables))
  12425. (home-page "https://github.com/Neronus/Clesh")
  12426. (synopsis "Embed shell code in Common Lisp")
  12427. (description
  12428. "This is a very short and simple program, written in Common Lisp, that
  12429. extends Common Lisp to embed shell code in a manner similar to Perl's
  12430. backtick. It has been forked from SHELISP.")
  12431. (license license:bsd-2))))
  12432. (define-public cl-clesh
  12433. (sbcl-package->cl-source-package sbcl-clesh))
  12434. (define-public ecl-clesh
  12435. (sbcl-package->ecl-package sbcl-clesh))
  12436. (define-public sbcl-trivial-channels
  12437. (let ((commit "e2370118d8983ba69c0360a7695f8f2e2fd6a8a6")
  12438. (revision "1"))
  12439. (package
  12440. (name "sbcl-trivial-channels")
  12441. (version (git-version "1.0" revision commit))
  12442. (source
  12443. (origin
  12444. (method git-fetch)
  12445. (uri (git-reference
  12446. (url "https://github.com/rpav/trivial-channels")
  12447. (commit commit)))
  12448. (file-name (git-file-name "trivial-channels" version))
  12449. (sha256
  12450. (base32 "04wnxcgk40x8p0gxnz9arv1a5wasdqrdxa8c4p5v7r2mycfps6jj"))))
  12451. (build-system asdf-build-system/sbcl)
  12452. (inputs
  12453. (list sbcl-bordeaux-threads sbcl-trivial-timeout))
  12454. (home-page "https://github.com/rpav/trivial-channels")
  12455. (synopsis "Common Lisp simple thread-safe channels with timeout")
  12456. (description
  12457. "It's very basic implementation of channels and queue for Common Lisp.")
  12458. (license license:bsd-2))))
  12459. (define-public ecl-trivial-channels
  12460. (sbcl-package->ecl-package sbcl-trivial-channels))
  12461. (define-public cl-trivial-channels
  12462. (sbcl-package->cl-source-package sbcl-trivial-channels))
  12463. (define-public sbcl-trivial-download
  12464. (let ((commit "d2472061d86b1cf3d32f388daacd4e32a13af699"))
  12465. (package
  12466. (name "sbcl-trivial-download")
  12467. (version (git-version "0.3" "1" commit))
  12468. (source
  12469. (origin
  12470. (method git-fetch)
  12471. (uri (git-reference
  12472. (url "https://github.com/eudoxia0/trivial-download/")
  12473. (commit commit)))
  12474. (file-name (git-file-name name version))
  12475. (sha256
  12476. (base32 "06f46zr3gp3wlm2kgxna24qd2gpr1v89x9fynh1x5vrw6c6hqjcv"))))
  12477. (build-system asdf-build-system/sbcl)
  12478. (inputs
  12479. (list sbcl-drakma))
  12480. (home-page "https://github.com/eudoxia0/trivial-download/")
  12481. (synopsis "Download files from Common Lisp")
  12482. (description
  12483. "@code{trivial-download} allows you to download files from the Internet
  12484. from Common Lisp. It provides a progress bar.")
  12485. (license license:bsd-2))))
  12486. (define-public cl-trivial-download
  12487. (sbcl-package->cl-source-package sbcl-trivial-download))
  12488. (define-public ecl-trivial-download
  12489. (sbcl-package->ecl-package sbcl-trivial-download))
  12490. (define-public sbcl-gtwiwtg
  12491. (package
  12492. (name "sbcl-gtwiwtg")
  12493. (version "0.1.1")
  12494. (source
  12495. (origin
  12496. (method git-fetch)
  12497. (uri (git-reference
  12498. (url "https://github.com/cbeo/gtwiwtg/")
  12499. (commit version)))
  12500. (file-name (git-file-name name version))
  12501. (sha256
  12502. (base32 "0lkraw0dwh4is4x5sp5rjrw6f93m0gr9849abrbi12s25ws7jbw4"))))
  12503. (build-system asdf-build-system/sbcl)
  12504. (native-inputs
  12505. (list sbcl-osicat sbcl-prove))
  12506. (home-page "https://github.com/cbeo/gtwiwtg/")
  12507. (synopsis "Naive generators for Common Lisp")
  12508. (description
  12509. "The GTWIWTG library (Generators The Way I Want Them Generated --
  12510. technically not generators, but iterators) is meant to be small, explorable,
  12511. and understandable.")
  12512. (license license:gpl3)))
  12513. (define-public cl-gtwiwtg
  12514. (sbcl-package->cl-source-package sbcl-gtwiwtg))
  12515. (define-public ecl-gtwiwtg
  12516. (sbcl-package->ecl-package sbcl-gtwiwtg))
  12517. (define-public sbcl-cl-progress-bar
  12518. (let ((commit "9374170858663c8fe829e9fb5a29bd2cb48d95ae"))
  12519. (package
  12520. (name "sbcl-cl-progress-bar")
  12521. (version (git-version "0.0.0" "1" commit))
  12522. (source
  12523. (origin
  12524. (method git-fetch)
  12525. (uri (git-reference
  12526. (url "https://github.com/sirherrbatka/cl-progress-bar/")
  12527. (commit commit)))
  12528. (file-name (git-file-name name version))
  12529. (sha256
  12530. (base32 "1ldb4qhmx431n3lsq71ynwb9ybazbfqd55icjbhi06mj52ngndir"))))
  12531. (build-system asdf-build-system/sbcl)
  12532. (inputs
  12533. (list sbcl-bordeaux-threads sbcl-documentation-utils-extensions))
  12534. (home-page "https://github.com/sirherrbatka/cl-progress-bar/")
  12535. (synopsis "Progress bars in Common Lisp")
  12536. (description
  12537. "This library provides almost the same code as used inside Quicklisp
  12538. for drawning progress bars")
  12539. (license license:expat))))
  12540. (define-public cl-progress-bar
  12541. (sbcl-package->cl-source-package sbcl-cl-progress-bar))
  12542. (define-public ecl-cl-progress-bar
  12543. (sbcl-package->ecl-package sbcl-cl-progress-bar))
  12544. (define-public sbcl-repl-utilities
  12545. (let ((commit "7e300df663177ea4581f4e7e9c601377881dd986"))
  12546. (package
  12547. (name "sbcl-repl-utilities")
  12548. (version (git-version "0.0.0" "1" commit))
  12549. (source
  12550. (origin
  12551. (method git-fetch)
  12552. (uri (git-reference
  12553. (url "https://github.com/m-n/repl-utilities/")
  12554. (commit commit)))
  12555. (file-name (git-file-name name version))
  12556. (sha256
  12557. (base32 "1hh56pq5nw3l4b83dzlyss69f06r038byj2cnjwvci4hfjhdfcc3"))))
  12558. (build-system asdf-build-system/sbcl)
  12559. (home-page "https://github.com/m-n/repl-utilities")
  12560. (synopsis "Ease common tasks at the Common Lisp REPL")
  12561. (description
  12562. "@code{repl-utilities} is a set of utilities which ease life at the
  12563. REPL. It includes three sorts of features: introspective procedures,
  12564. miscellaneous utility functions, and, pulling them together, methods to
  12565. conveniently keep these symbols and optionally additional symbols available in
  12566. whichever package you switch to.")
  12567. (license license:bsd-2))))
  12568. (define-public cl-repl-utilities
  12569. (sbcl-package->cl-source-package sbcl-repl-utilities))
  12570. (define-public ecl-repl-utilities
  12571. (sbcl-package->ecl-package sbcl-repl-utilities))
  12572. (define-public sbcl-supertrace
  12573. (let ((commit "66d22c3ff131ecd1c8048dfced1d62ed6024ecb0"))
  12574. (package
  12575. (name "sbcl-supertrace")
  12576. (version (git-version "0.1.0" "1" commit))
  12577. (source
  12578. (origin
  12579. (method git-fetch)
  12580. (uri (git-reference
  12581. (url "https://github.com/fukamachi/supertrace")
  12582. (commit commit)))
  12583. (file-name (git-file-name name version))
  12584. (sha256
  12585. (base32 "0n369n6b7y1m49biccnnr7svymjdsk8sksrkqrn3mj21vgv7s7bg"))))
  12586. (build-system asdf-build-system/sbcl)
  12587. (native-inputs
  12588. (list sbcl-cffi sbcl-rove sbcl-cl-ppcre sbcl-bordeaux-threads))
  12589. (inputs
  12590. (list sbcl-cffi))
  12591. (home-page "https://github.com/fukamachi/supertrace")
  12592. (synopsis "Improved Common Lisp tracing for debugging and profiling")
  12593. (description
  12594. "Supertrace provides a superior Common Lisp @code{trace} functionality
  12595. for debugging and profiling real world applications.")
  12596. (license license:bsd-2))))
  12597. (define-public cl-supertrace
  12598. (sbcl-package->cl-source-package sbcl-supertrace))
  12599. (define-public ecl-supertrace
  12600. (sbcl-package->ecl-package sbcl-supertrace))
  12601. (define-public sbcl-trivial-benchmark
  12602. (let ((commit "42d76733dd2e873471c6f1e27d39113293f7dd5c"))
  12603. (package
  12604. (name "sbcl-trivial-benchmark")
  12605. (version (git-version "2.0.0" "1" commit))
  12606. (source
  12607. (origin
  12608. (method git-fetch)
  12609. (uri (git-reference
  12610. (url "https://github.com/Shinmera/trivial-benchmark/")
  12611. (commit commit)))
  12612. (file-name (git-file-name name version))
  12613. (sha256
  12614. (base32 "0fbzqbpm2ixz85555krl36kbbbjyn699vdj6k383khi3g9y629fa"))))
  12615. (build-system asdf-build-system/sbcl)
  12616. (inputs
  12617. (list sbcl-alexandria))
  12618. (home-page "http://shinmera.github.io/trivial-benchmark/")
  12619. (synopsis "Easy to use benchmarking system for Common Lisp")
  12620. (description
  12621. "Trivial-Benchmark runs a block of code many times and outputs some
  12622. statistical data for it. On SBCL this includes the data from @code{time}, for
  12623. all other implementations just the @code{real-time} and @code{run-time} data.
  12624. However, you can extend the system by adding your own @code{metrics} to it, or
  12625. even by adding additional statistical @code{compute}ations.")
  12626. (license license:zlib))))
  12627. (define-public cl-trivial-benchmark
  12628. (sbcl-package->cl-source-package sbcl-trivial-benchmark))
  12629. (define-public ecl-trivial-benchmark
  12630. (sbcl-package->ecl-package sbcl-trivial-benchmark))
  12631. (define-public sbcl-glyphs
  12632. (let ((commit "1ff5714e8c1dca327bc604dfe3e3d1f4b7755373"))
  12633. (package
  12634. (name "sbcl-glyphs")
  12635. (version (git-version "0.0.0" "1" commit))
  12636. (source
  12637. (origin
  12638. (method git-fetch)
  12639. (uri (git-reference
  12640. (url "https://github.com/ahungry/glyphs/")
  12641. (commit commit)))
  12642. (file-name (git-file-name name version))
  12643. (sha256
  12644. (base32 "17kai1anbkk5dj5sbrsin2fc019cmcbglb900db60v38myj0y0wf"))))
  12645. (build-system asdf-build-system/sbcl)
  12646. (inputs
  12647. (list sbcl-cl-ppcre sbcl-parenscript sbcl-named-readtables))
  12648. (home-page "https://github.com/ahungry/glyphs/")
  12649. (synopsis "Reduce Common Lisp verbosity")
  12650. (description
  12651. "This library is a little experiment in reducing verbosity in Common
  12652. Lisp, inspired by BODOL (@url{https://github.com/bodil/BODOL}).")
  12653. (license license:gpl3))))
  12654. (define-public cl-glyphs
  12655. (sbcl-package->cl-source-package sbcl-glyphs))
  12656. (define-public ecl-glyphs
  12657. (sbcl-package->ecl-package sbcl-glyphs))
  12658. (define-public sbcl-zs3
  12659. (package
  12660. (name "sbcl-zs3")
  12661. (version "1.3.3")
  12662. (source
  12663. (origin
  12664. (method git-fetch)
  12665. (uri
  12666. (git-reference
  12667. (url "https://github.com/xach/zs3")
  12668. (commit (string-append "release-" version))))
  12669. (file-name (git-file-name "zs3" version))
  12670. (sha256
  12671. (base32 "186v95wgsj2hkxdw2jl9x1w4fddjclp7arp0rrd9vf5ly8h8sbf3"))))
  12672. (build-system asdf-build-system/sbcl)
  12673. (inputs
  12674. (list sbcl-drakma
  12675. sbcl-alexandria
  12676. sbcl-cxml
  12677. sbcl-ironclad
  12678. sbcl-puri
  12679. sbcl-cl-base64))
  12680. (synopsis "Work with Amazon S3 and Amazon CloudFront from Common Lisp")
  12681. (description "This is ZS3, a library for working with Amazon's Simple Storage
  12682. Service (S3) and CloudFront service from Common Lisp.")
  12683. (home-page "https://github.com/xach/zs3")
  12684. (license license:bsd-2)))
  12685. (define-public cl-zs3
  12686. (sbcl-package->cl-source-package sbcl-zs3))
  12687. (define-public ecl-zs3
  12688. (sbcl-package->ecl-package sbcl-zs3))
  12689. (define-public sbcl-simple-neural-network
  12690. (package
  12691. (name "sbcl-simple-neural-network")
  12692. (version "3.1")
  12693. (source
  12694. (origin
  12695. (method git-fetch)
  12696. (uri (git-reference
  12697. (url "https://github.com/glv2/simple-neural-network")
  12698. (commit (string-append "v" version))))
  12699. (file-name (git-file-name "simple-neural-network" version))
  12700. (sha256
  12701. (base32 "1jj1c90fr5clwka0jv32hv6xp1bkdlpa6x5jh19an13rhx8ll4zr"))))
  12702. (build-system asdf-build-system/sbcl)
  12703. (native-inputs
  12704. `(("chipz" ,sbcl-chipz)
  12705. ("fiveam" ,sbcl-fiveam)))
  12706. (inputs
  12707. `(("cl-store" ,sbcl-cl-store)
  12708. ("lparallel" ,sbcl-lparallel)))
  12709. (arguments
  12710. `(#:phases
  12711. (modify-phases %standard-phases
  12712. (add-after 'check 'remove-test-data
  12713. (lambda* (#:key outputs #:allow-other-keys)
  12714. (let ((out (assoc-ref outputs "out")))
  12715. (for-each delete-file (find-files out "\\.gz$"))))))))
  12716. (synopsis "Simple neural network in Common Lisp")
  12717. (description
  12718. "@code{simple-neural-network} is a Common Lisp library for creating,
  12719. training and using basic neural networks. The networks created by this
  12720. library are feedforward neural networks trained using backpropagation.")
  12721. (home-page "https://github.com/glv2/simple-neural-network")
  12722. (license license:gpl3+)))
  12723. (define-public cl-simple-neural-network
  12724. (sbcl-package->cl-source-package sbcl-simple-neural-network))
  12725. (define-public ecl-simple-neural-network
  12726. (sbcl-package->ecl-package sbcl-simple-neural-network))
  12727. (define-public sbcl-zstd
  12728. (let ((commit "d144582c581aaa52bac24d6686af27fa3e781e06")
  12729. (revision "1"))
  12730. (package
  12731. (name "sbcl-zstd")
  12732. (version (git-version "1.0" revision commit))
  12733. (source
  12734. (origin
  12735. (method git-fetch)
  12736. (uri (git-reference
  12737. (url "https://github.com/glv2/cl-zstd")
  12738. (commit commit)))
  12739. (file-name (git-file-name "cl-zstd" version))
  12740. (sha256
  12741. (base32 "1774jy8hzbi6nih3sq6vchk66f7g8w86dwgpbvljyfzcnkcaz6ql"))))
  12742. (build-system asdf-build-system/sbcl)
  12743. (native-inputs
  12744. (list sbcl-fiveam))
  12745. (inputs
  12746. `(("cffi" ,sbcl-cffi)
  12747. ("cl-octet-streams" ,sbcl-cl-octet-streams)
  12748. ("zstd-lib" ,zstd "lib")))
  12749. (arguments
  12750. '(#:phases
  12751. (modify-phases %standard-phases
  12752. (add-after 'unpack 'fix-paths
  12753. (lambda* (#:key inputs #:allow-other-keys)
  12754. (substitute* "src/libzstd.lisp"
  12755. (("libzstd\\.so")
  12756. (search-input-file inputs "/lib/libzstd.so"))))))))
  12757. (synopsis "Common Lisp library for Zstandard (de)compression")
  12758. (description
  12759. "This Common Lisp library provides functions for Zstandard
  12760. compression/decompression using bindings to the libzstd C library.")
  12761. (home-page "https://github.com/glv2/cl-zstd")
  12762. (license license:gpl3+))))
  12763. (define-public cl-zstd
  12764. (sbcl-package->cl-source-package sbcl-zstd))
  12765. (define-public ecl-zstd
  12766. (sbcl-package->ecl-package sbcl-zstd))
  12767. (define-public sbcl-agnostic-lizard
  12768. (let ((commit "fe3a73719f05901c8819f8995a3ebae738257952")
  12769. (revision "1"))
  12770. (package
  12771. (name "sbcl-agnostic-lizard")
  12772. (version (git-version "0.0.0" revision commit))
  12773. (source
  12774. (origin
  12775. (method git-fetch)
  12776. (uri (git-reference
  12777. (url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
  12778. (commit commit)))
  12779. (file-name (git-file-name name version))
  12780. (sha256
  12781. (base32 "0ax78y8w4zlp5dcwyhz2nq7j3shi49qn31dkfg8lv2jlg7mkwh2d"))))
  12782. (build-system asdf-build-system/sbcl)
  12783. (synopsis "Almost correct portable code walker for Common Lisp")
  12784. (description
  12785. "Agnostic Lizard is a portable implementation of a code walker and in
  12786. particular of the macroexpand-all function (and macro) that makes a best
  12787. effort to be correct while not expecting much beyond what the Common Lisp
  12788. standard requires.
  12789. It aims to be implementation-agnostic and to climb the syntax trees.")
  12790. (home-page "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
  12791. (license license:gpl3+))))
  12792. (define-public cl-agnostic-lizard
  12793. (sbcl-package->cl-source-package sbcl-agnostic-lizard))
  12794. (define-public ecl-agnostic-lizard
  12795. (sbcl-package->ecl-package sbcl-agnostic-lizard))
  12796. (define-public sbcl-dynamic-classes
  12797. (package
  12798. (name "sbcl-dynamic-classes")
  12799. (version "1.0.2")
  12800. (source
  12801. (origin
  12802. (method git-fetch)
  12803. (uri (git-reference
  12804. (url "https://github.com/gwkkwg/dynamic-classes")
  12805. (commit (string-append "version-" version))))
  12806. (file-name (git-file-name "dynamic-classes" version))
  12807. (sha256
  12808. (base32 "1z3ag6w4ff0v6715xa9zhvwjqnp4i6zrjfmxdz8m115sklbwgm6c"))))
  12809. (build-system asdf-build-system/sbcl)
  12810. (inputs
  12811. `(("metatilities-base" ,sbcl-metatilities-base)))
  12812. (arguments
  12813. ;; NOTE: (Sharlatan-20210106222900+0000) Circular dependencies and failing
  12814. ;; test suites. lift-standard.config contains referances to deprecated
  12815. ;; functionality.
  12816. `(#:tests? #f))
  12817. (home-page "https://common-lisp.net/project/dynamic-classes/")
  12818. (synopsis "Dynamic class definition for Common Lisp")
  12819. (description "Dynamic-Classes helps to ease the prototyping process by
  12820. bringing dynamism to class definition.")
  12821. (license license:expat)))
  12822. (define-public ecl-dynamic-classes
  12823. (sbcl-package->ecl-package sbcl-dynamic-classes))
  12824. (define-public cl-dynamic-classes
  12825. (sbcl-package->cl-source-package sbcl-dynamic-classes))
  12826. (define-public sbcl-cl-markdown
  12827. ;; NOTE: (Sharlatan-20210106214629+0000) latest version tag
  12828. ;; "version-0.10.6_version-0.10.6" is failing to build due to missing system
  12829. ;; #:container-dynamic-classes
  12830. (package
  12831. (name "sbcl-cl-markdown")
  12832. (version "0.10.4")
  12833. (source
  12834. (origin
  12835. (method git-fetch)
  12836. (uri (git-reference
  12837. (url "https://github.com/gwkkwg/cl-markdown")
  12838. (commit (string-append "version-" version))))
  12839. (file-name (git-file-name "cl-markdown" version))
  12840. (sha256
  12841. (base32 "1wdjbdd1zyskxf7zlilcp6fmwkivybj0wjp64vvzb265d5xi7p8p"))))
  12842. (build-system asdf-build-system/sbcl)
  12843. (inputs
  12844. `(("anaphora" ,sbcl-anaphora)
  12845. ("cl-containers" ,sbcl-cl-containers)
  12846. ("cl-ppcre" ,sbcl-cl-ppcre)
  12847. ("dynamic-classes" ,sbcl-dynamic-classes)
  12848. ("metabang-bind" ,sbcl-metabang-bind)
  12849. ("metatilities-base" ,sbcl-metatilities-base)))
  12850. (arguments
  12851. ;; NOTE: (Sharlatan-20210107213629+0000) Tests depend on too many not
  12852. ;; available systems, which themself are abandoned.
  12853. `(#:tests? #f))
  12854. (home-page "https://common-lisp.net/project/cl-markdown/")
  12855. (synopsis "Common Lisp rewrite of Markdown")
  12856. (description
  12857. "This is an implementation of a Markdown parser in Common Lisp.")
  12858. (license license:expat)))
  12859. (define-public ecl-cl-markdown
  12860. (sbcl-package->ecl-package sbcl-cl-markdown))
  12861. (define-public cl-markdown
  12862. (sbcl-package->cl-source-package sbcl-cl-markdown))
  12863. (define-public sbcl-magicffi
  12864. (let ((commit "d88f2f280c31f639e4e05be75215d8a8dce6aef2"))
  12865. (package
  12866. (name "sbcl-magicffi")
  12867. (version (git-version "0.0.0" "1" commit))
  12868. (source
  12869. (origin
  12870. (method git-fetch)
  12871. (uri (git-reference
  12872. (url "https://github.com/dochang/magicffi/")
  12873. (commit commit)))
  12874. (file-name (git-file-name name version))
  12875. (sha256
  12876. (base32 "0p6ysa92fk34bhxpw7bycbfgw150fv11z9x8jr9xb4lh8cm2hvp6"))))
  12877. (build-system asdf-build-system/sbcl)
  12878. (native-inputs
  12879. (list sbcl-alexandria))
  12880. (inputs
  12881. `(("cffi" ,sbcl-cffi)
  12882. ("ppcre" ,sbcl-cl-ppcre)
  12883. ("libmagic" ,file)))
  12884. (arguments
  12885. `(#:phases
  12886. (modify-phases %standard-phases
  12887. (add-after 'unpack 'fix-paths
  12888. (lambda* (#:key inputs #:allow-other-keys)
  12889. (let ((magic (assoc-ref inputs "libmagic")))
  12890. (substitute* "grovel.lisp"
  12891. (("/usr/include/magic.h")
  12892. (string-append magic "/include/magic.h")))
  12893. (substitute* "api.lisp"
  12894. ((":default \"libmagic\"" all)
  12895. (string-append ":default \"" magic "/lib/libmagic\"")))))))))
  12896. (home-page "https://common-lisp.net/project/magicffi/")
  12897. (synopsis "Common Lisp interface to libmagic based on CFFI")
  12898. (description
  12899. "MAGICFFI is a Common Lisp CFFI interface to libmagic(3), the file type
  12900. determination library using @emph{magic} numbers.")
  12901. (license license:bsd-2))))
  12902. (define-public ecl-magicffi
  12903. (sbcl-package->ecl-package sbcl-magicffi))
  12904. (define-public cl-magicffi
  12905. (sbcl-package->cl-source-package sbcl-magicffi))
  12906. (define-public sbcl-shlex
  12907. (let ((commit "3dee1cb7c0140fa7660ca7a3b2ac5e75d1218e5c")
  12908. (revision "2"))
  12909. (package
  12910. (name "sbcl-shlex")
  12911. (version (git-version "0.0.0" revision commit))
  12912. (source
  12913. (origin
  12914. (method git-fetch)
  12915. (uri (git-reference
  12916. (url "https://github.com/ruricolist/cl-shlex")
  12917. (commit commit)))
  12918. (file-name (git-file-name "cl-shlex" version))
  12919. (sha256
  12920. (base32 "16ag48sswgimr1fzr582vhym4s03idpd4lkydw5s58lv80ibpim8"))))
  12921. (build-system asdf-build-system/sbcl)
  12922. (inputs
  12923. (list sbcl-alexandria sbcl-serapeum sbcl-cl-ppcre sbcl-cl-unicode))
  12924. (home-page "https://github.com/ruricolist/cl-shlex")
  12925. (synopsis "Common Lisp lexical analyzer for shell-like syntaxes")
  12926. (description
  12927. "This library contains a lexer for syntaxes that use shell-like rules
  12928. for quoting and commenting. It is a port of the @code{shlex} module from Python’s
  12929. standard library.")
  12930. (license license:expat))))
  12931. (define-public ecl-shlex
  12932. (sbcl-package->ecl-package sbcl-shlex))
  12933. (define-public cl-shlex
  12934. (sbcl-package->cl-source-package sbcl-shlex))
  12935. (define-public sbcl-cmd
  12936. (let ((commit "b0b79adf1214dbec082f3dd2274a72a0ff58efd7"))
  12937. (package
  12938. (name "sbcl-cmd")
  12939. (version (git-version "0.0.1" "5" commit))
  12940. (source
  12941. (origin
  12942. (method git-fetch)
  12943. (uri (git-reference
  12944. (url "https://github.com/ruricolist/cmd/")
  12945. (commit commit)))
  12946. (file-name (git-file-name name version))
  12947. (sha256
  12948. (base32 "0kk29vydmi1fyhpbwy3mrsg3bhvx0478r6r7jcsfkr3ci2h8w8a1"))))
  12949. (build-system asdf-build-system/sbcl)
  12950. (inputs
  12951. `(("alexandria" ,sbcl-alexandria)
  12952. ("coreutils" ,coreutils)
  12953. ("procps" ,procps)
  12954. ("serapeum" ,sbcl-serapeum)
  12955. ("shlex" ,sbcl-shlex)
  12956. ("trivia" ,sbcl-trivia)))
  12957. (arguments
  12958. `(#:phases
  12959. (modify-phases %standard-phases
  12960. (add-after 'unpack 'fix-paths
  12961. (lambda* (#:key inputs #:allow-other-keys)
  12962. (let ((bin (string-append (assoc-ref inputs "coreutils") "/bin"))
  12963. (ps-bin (string-append (assoc-ref inputs "procps") "/bin")))
  12964. (substitute* "cmd.lisp"
  12965. (("\\(def \\+env\\+ \"env\"\\)")
  12966. (format #f "(def +env+ \"~a/env\")" bin))
  12967. (("\\(def \\+kill\\+ \"kill\"\\)")
  12968. (format #f "(def +kill+ \"~a/kill\")" bin))
  12969. (("\\(def \\+ps\\+ \"ps\"\\)")
  12970. (format #f "(def +ps+ \"~a/ps\")" ps-bin))
  12971. (("\\(def \\+pwd\\+ \"pwd\"\\)")
  12972. (format #f "(def +pwd+ \"~a/pwd\")" bin))
  12973. (("\\(def \\+sh\\+ \"/bin/sh\"\\)")
  12974. (format #f "(def +sh+ \"~a\")" (which "sh")))
  12975. (("\\(def \\+tr\\+ \"tr\"\\)")
  12976. (format #f "(def +tr+ \"~a/tr\")" bin)))))))))
  12977. (home-page "https://github.com/ruricolist/cmd")
  12978. (synopsis "Conveniently run external programs from Common Lisp")
  12979. (description
  12980. "A utility for running external programs, built on UIOP.
  12981. Cmd is designed to be natural to use, protect against shell interpolation and
  12982. be usable from multi-threaded programs.")
  12983. (license license:expat))))
  12984. (define-public ecl-cmd
  12985. (sbcl-package->ecl-package sbcl-cmd))
  12986. (define-public cl-cmd
  12987. (sbcl-package->cl-source-package sbcl-cmd))
  12988. (define-public sbcl-ppath
  12989. (let ((commit "eb1a8173b4d1d691ea9a7699412123462f58c3ce"))
  12990. (package
  12991. (name "sbcl-ppath")
  12992. (version (git-version "0.1" "1" commit))
  12993. (source
  12994. (origin
  12995. (method git-fetch)
  12996. (uri (git-reference
  12997. (url "https://github.com/fourier/ppath/")
  12998. (commit commit)))
  12999. (file-name (git-file-name name commit))
  13000. (sha256
  13001. (base32 "1c46q9lmzqv14z80d3fwdawgn3pn4922x31fyqvsvbcjm4hd16fb"))))
  13002. (build-system asdf-build-system/sbcl)
  13003. (inputs
  13004. (list sbcl-alexandria
  13005. sbcl-cffi
  13006. sbcl-osicat
  13007. sbcl-cl-ppcre
  13008. sbcl-split-sequence
  13009. sbcl-trivial-features))
  13010. (native-inputs
  13011. (list sbcl-cl-fad sbcl-prove))
  13012. (home-page "https://github.com/fourier/ppath")
  13013. (synopsis "Common Lisp's implementation of the Python's os.path module")
  13014. (description
  13015. "This library is a path strings manipulation library inspired by
  13016. Python's @code{os.path}. All functionality from @code{os.path} is supported on
  13017. major operation systems.
  13018. The philosophy behind is to use simple strings and \"dumb\" string
  13019. manipulation functions to handle paths and filenames. Where possible the
  13020. corresponding OS system functions are called.")
  13021. (license license:bsd-2))))
  13022. (define-public ecl-ppath
  13023. (sbcl-package->ecl-package sbcl-ppath))
  13024. (define-public cl-ppath
  13025. (sbcl-package->cl-source-package sbcl-ppath))
  13026. (define-public sbcl-trivial-escapes
  13027. (let ((commit "1eca78da2078495d09893be58c28b3aa7b8cc4d1"))
  13028. (package
  13029. (name "sbcl-trivial-escapes")
  13030. (version (git-version "1.2.0" "1" commit))
  13031. (source
  13032. (origin
  13033. (method git-fetch)
  13034. (uri (git-reference
  13035. (url "https://github.com/williamyaoh/trivial-escapes")
  13036. (commit commit)))
  13037. (file-name (git-file-name name commit))
  13038. (sha256
  13039. (base32 "0v6h8lk17iqv1qkxgqjyzn8gi6v0hvq2vmfbb01md3zjvjqxn6lr"))))
  13040. (build-system asdf-build-system/sbcl)
  13041. (inputs
  13042. (list sbcl-named-readtables))
  13043. (native-inputs
  13044. (list sbcl-fiveam))
  13045. (home-page "https://github.com/williamyaoh/trivial-escapes")
  13046. (synopsis "C-style escape directives for Common Lisp")
  13047. (description
  13048. "This Common Lisp library interprets escape characters the same way that
  13049. most other programming language do.
  13050. It provides four readtables. The default one lets you write strings like this:
  13051. @code{#\"This string has\na newline in it!\"}.")
  13052. (license license:public-domain))))
  13053. (define-public ecl-trivial-escapes
  13054. (sbcl-package->ecl-package sbcl-trivial-escapes))
  13055. (define-public cl-trivial-escapes
  13056. (sbcl-package->cl-source-package sbcl-trivial-escapes))
  13057. (define-public sbcl-cl-indentify
  13058. (let ((commit "eb770f434defa4cd41d84bca822428dfd0dbac53"))
  13059. (package
  13060. (name "sbcl-cl-indentify")
  13061. (version (git-version "0.1" "1" commit))
  13062. (source
  13063. (origin
  13064. (method git-fetch)
  13065. (uri (git-reference
  13066. (url "https://github.com/yitzchak/cl-indentify")
  13067. (commit commit)))
  13068. (file-name (git-file-name name commit))
  13069. (sha256
  13070. (base32 "0ha36bhg474vr76vfhr13szc8cfdj1ickg92k1icz791bqaqg67p"))))
  13071. (build-system asdf-build-system/sbcl)
  13072. (inputs
  13073. (list sbcl-alexandria sbcl-command-line-arguments
  13074. sbcl-trivial-gray-streams))
  13075. (native-inputs
  13076. (list sbcl-trivial-escapes sbcl-rove))
  13077. (home-page "https://github.com/yitzchak/cl-indentify")
  13078. (synopsis "Code beautifier for Common Lisp")
  13079. (description
  13080. "A library and command line utility to automatically indent Common Lisp
  13081. source files.")
  13082. (license license:expat))))
  13083. (define-public ecl-cl-indentify
  13084. (sbcl-package->ecl-package sbcl-cl-indentify))
  13085. (define-public cl-indentify
  13086. (sbcl-package->cl-source-package sbcl-cl-indentify))
  13087. (define-public sbcl-concrete-syntax-tree
  13088. (let ((commit "abd242a59dadc5452aa9dbc1d313c83ec2c11f46"))
  13089. (package
  13090. (name "sbcl-concrete-syntax-tree")
  13091. (version (git-version "0.0.0" "1" commit))
  13092. (source
  13093. (origin
  13094. (method git-fetch)
  13095. (uri (git-reference
  13096. (url "https://github.com/s-expressionists/Concrete-Syntax-Tree")
  13097. (commit commit)))
  13098. (file-name (git-file-name name commit))
  13099. (sha256
  13100. (base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di"))))
  13101. (build-system asdf-build-system/sbcl)
  13102. (inputs
  13103. (list sbcl-acclimation))
  13104. (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree")
  13105. (synopsis "Parse Common Lisp code into a concrete syntax tree")
  13106. (description
  13107. "This library is intended to solve the problem of source tracking for
  13108. Common Lisp code.
  13109. By \"source tracking\", it is meant that code elements that have a known
  13110. origin in the form of a position in a file or in an editor buffer are
  13111. associated with some kind of information about this origin.
  13112. Since the exact nature of such origin information depends on the Common Lisp
  13113. implementation and the purpose of wanting to track that origin, the library
  13114. does not impose a particular structure of this information. Instead, it
  13115. provides utilities for manipulating source code in the form of what is called
  13116. concrete syntax trees (CSTs for short) that preserve this information about
  13117. the origin.")
  13118. (license license:bsd-2))))
  13119. (define-public ecl-concrete-syntax-tree
  13120. (sbcl-package->ecl-package sbcl-concrete-syntax-tree))
  13121. (define-public cl-concrete-syntax-tree
  13122. (sbcl-package->cl-source-package sbcl-concrete-syntax-tree))
  13123. (define-public sbcl-eclector
  13124. (package
  13125. (name "sbcl-eclector")
  13126. (version "0.5.0")
  13127. (source
  13128. (origin
  13129. (method git-fetch)
  13130. (uri (git-reference
  13131. (url "https://github.com/s-expressionists/Eclector")
  13132. (commit version)))
  13133. (file-name (git-file-name name version))
  13134. (sha256
  13135. (base32 "0bwkla0jdp5bg0q1zca5wg22b0nbdmglgax345nrhsf8bdrh47wm"))))
  13136. (build-system asdf-build-system/sbcl)
  13137. (inputs
  13138. `(("acclimation" ,sbcl-acclimation)
  13139. ("alexandria" ,sbcl-alexandria)
  13140. ("closer-mop" ,sbcl-closer-mop)
  13141. ("concrete-syntax-tree" ,sbcl-concrete-syntax-tree)))
  13142. (native-inputs
  13143. (list sbcl-fiveam))
  13144. (arguments
  13145. '(#:asd-systems '("eclector"
  13146. "eclector-concrete-syntax-tree")))
  13147. (home-page "https://s-expressionists.github.io/Eclector/")
  13148. (synopsis "Highly customizable, portable Common Lisp reader")
  13149. (description
  13150. "Eclector is a portable Common Lisp reader that is highly customizable,
  13151. can recover from errors and can return concrete syntax trees.
  13152. In contrast to many other reader implementations, eclector can recover from
  13153. most errors in the input supplied to it and continue reading. This capability
  13154. is realized as a restart.
  13155. It can also produce instances of the concrete syntax tree classes provided by
  13156. the concrete syntax tree library.")
  13157. (license license:bsd-2)))
  13158. (define-public ecl-eclector
  13159. (sbcl-package->ecl-package sbcl-eclector))
  13160. (define-public cl-eclector
  13161. (sbcl-package->cl-source-package sbcl-eclector))
  13162. (define-public sbcl-jsown
  13163. (let ((commit "744c4407bef58dfa876d9da0b5c0205d869e7977"))
  13164. (package
  13165. (name "sbcl-jsown")
  13166. (version (git-version "1.0.1" "1" commit))
  13167. (source
  13168. (origin
  13169. (method git-fetch)
  13170. (uri (git-reference
  13171. (url "https://github.com/madnificent/jsown")
  13172. (commit commit)))
  13173. (file-name (git-file-name name commit))
  13174. (sha256
  13175. (base32 "0gadvmf1d9bq35s61z76psrsnzwwk12svi66jigf491hv48wigw7"))))
  13176. (build-system asdf-build-system/sbcl)
  13177. (home-page "https://github.com/madnificent/jsown")
  13178. (synopsis "Fast JSON reader / writer library for Common Lisp")
  13179. (description
  13180. "@code{jsown} is a high performance Common Lisp JSON parser. Its aim
  13181. is to allow for the fast parsing of JSON objects in Common Lisp. Recently,
  13182. functions and macros have been added to ease the burden of writing and editing
  13183. @code{jsown} objects.
  13184. @code{jsown} allows you to parse JSON objects quickly to a modifiable Lisp
  13185. list and write them back. If you only need partial retrieval of objects,
  13186. @code{jsown} allows you to select the keys which you would like to see parsed.
  13187. @code{jsown} also has a JSON writer and some helper methods to alter the JSON
  13188. objects themselves.")
  13189. (license license:expat))))
  13190. (define-public ecl-jsown
  13191. (sbcl-package->ecl-package sbcl-jsown))
  13192. (define-public cl-jsown
  13193. (sbcl-package->cl-source-package sbcl-jsown))
  13194. (define-public sbcl-system-locale
  13195. (let ((commit "4b334bc2fa45651bcaa28ae7d9331095d6bf0a17"))
  13196. (package
  13197. (name "sbcl-system-locale")
  13198. (version (git-version "1.0.0" "1" commit))
  13199. (source
  13200. (origin
  13201. (method git-fetch)
  13202. (uri (git-reference
  13203. (url "https://github.com/Shinmera/system-locale/")
  13204. (commit commit)))
  13205. (file-name (git-file-name name commit))
  13206. (sha256
  13207. (base32 "00p5c053kmgq4ks6l9mxsqz6g3bjcybvkvj0bh3r90qgpkaawm1p"))))
  13208. (build-system asdf-build-system/sbcl)
  13209. (inputs
  13210. (list sbcl-documentation-utils))
  13211. (home-page "https://shinmera.github.io/system-locale/")
  13212. (synopsis "Get the system's locale and language settings in Common Lisp")
  13213. (description
  13214. "This library retrieves locale information configured on the
  13215. system. This is helpful if you want to write applications and libraries that
  13216. display messages in the user's native language.")
  13217. (license license:zlib))))
  13218. (define-public ecl-system-locale
  13219. (sbcl-package->ecl-package sbcl-system-locale))
  13220. (define-public cl-system-locale
  13221. (sbcl-package->cl-source-package sbcl-system-locale))
  13222. (define-public sbcl-language-codes
  13223. (let ((commit "e7aa0e37cb97a3d37d6bc7316b479d01bff8f42e"))
  13224. (package
  13225. (name "sbcl-language-codes")
  13226. (version (git-version "1.0.0" "1" commit))
  13227. (source
  13228. (origin
  13229. (method git-fetch)
  13230. (uri (git-reference
  13231. (url "https://github.com/Shinmera/language-codes")
  13232. (commit commit)))
  13233. (file-name (git-file-name name commit))
  13234. (sha256
  13235. (base32 "0py176ibmsc01n5r0q1bs1ykqf5jwdbh8kx0j1a814l9y51241v0"))))
  13236. (build-system asdf-build-system/sbcl)
  13237. (inputs
  13238. (list sbcl-documentation-utils))
  13239. (home-page "https://shinmera.github.io/language-codes/")
  13240. (synopsis "Map ISO language codes to language names in Common Lisp")
  13241. (description
  13242. "This is a small library providing the ISO-639 language code to
  13243. language name mapping.")
  13244. (license license:zlib))))
  13245. (define-public ecl-language-codes
  13246. (sbcl-package->ecl-package sbcl-language-codes))
  13247. (define-public cl-language-codes
  13248. (sbcl-package->cl-source-package sbcl-language-codes))
  13249. (define-public sbcl-multilang-documentation
  13250. (let ((commit "59e798a07e949e8957a20927f52aca425d84e4a0"))
  13251. (package
  13252. (name "sbcl-multilang-documentation")
  13253. (version (git-version "1.0.0" "1" commit))
  13254. (source
  13255. (origin
  13256. (method git-fetch)
  13257. (uri (git-reference
  13258. (url "https://github.com/Shinmera/multilang-documentation")
  13259. (commit commit)))
  13260. (file-name (git-file-name name commit))
  13261. (sha256
  13262. (base32 "13y5jskx8n2b7kimpfarr8v777w3b7zj5swg1b99nj3hk0843ixw"))))
  13263. (build-system asdf-build-system/sbcl)
  13264. (inputs
  13265. (list sbcl-documentation-utils sbcl-language-codes
  13266. sbcl-system-locale))
  13267. (home-page "https://shinmera.github.io/multilang-documentation/")
  13268. (synopsis "Add multiple languages support to Common Lisp documentation")
  13269. (description
  13270. "This library provides a drop-in replacement function for
  13271. cl:documentation that supports multiple docstrings per-language, allowing you
  13272. to write documentation that can be internationalised.")
  13273. (license license:zlib))))
  13274. (define-public ecl-multilang-documentation
  13275. (sbcl-package->ecl-package sbcl-multilang-documentation))
  13276. (define-public cl-multilang-documentation
  13277. (sbcl-package->cl-source-package sbcl-multilang-documentation))
  13278. (define-public sbcl-trivial-do
  13279. (let ((commit "03a1729f1e71bad3ebcf6cf098a0cce52dfa1163"))
  13280. (package
  13281. (name "sbcl-trivial-do")
  13282. (version (git-version "0.1" "1" commit))
  13283. (source
  13284. (origin
  13285. (method git-fetch)
  13286. (uri (git-reference
  13287. (url "https://github.com/yitzchak/trivial-do")
  13288. (commit commit)))
  13289. (file-name (git-file-name name commit))
  13290. (sha256
  13291. (base32 "1ffva79nkicc7wc8c2ic5nayis3b2rk5sxzj74yjkymkjgbpcrgd"))))
  13292. (build-system asdf-build-system/sbcl)
  13293. (home-page "https://github.com/yitzchak/trivial-do")
  13294. (synopsis "Additional dolist style macros for Common Lisp")
  13295. (description
  13296. "Additional dolist style macros for Common Lisp, such as
  13297. @code{doalist}, @code{dohash}, @code{dolist*}, @code{doplist}, @code{doseq}
  13298. and @code{doseq*}.")
  13299. (license license:zlib))))
  13300. (define-public ecl-trivial-do
  13301. (sbcl-package->ecl-package sbcl-trivial-do))
  13302. (define-public cl-trivial-do
  13303. (sbcl-package->cl-source-package sbcl-trivial-do))
  13304. (define-public sbcl-common-lisp-jupyter
  13305. (let ((commit "ba9f0e746b9200d6fd6db647d7274448119ed01b")
  13306. (revision "3"))
  13307. (package
  13308. (name "sbcl-common-lisp-jupyter")
  13309. (version (git-version "0.1.0" revision commit))
  13310. (source
  13311. (origin
  13312. (method git-fetch)
  13313. (uri (git-reference
  13314. (url "https://github.com/yitzchak/common-lisp-jupyter")
  13315. (commit commit)))
  13316. (file-name (git-file-name "common-lisp-jupyter" commit))
  13317. (sha256
  13318. (base32 "0si69xfzi769dprwfy7gp1x3bl7lxz6d4n98sa26w9r41wvay5ja"))))
  13319. (build-system asdf-build-system/sbcl)
  13320. (inputs
  13321. (list sbcl-alexandria
  13322. sbcl-babel
  13323. sbcl-bordeaux-threads
  13324. sbcl-cl-base64
  13325. sbcl-cl-indentify
  13326. sbcl-closer-mop
  13327. sbcl-dissect
  13328. sbcl-eclector
  13329. sbcl-ironclad
  13330. sbcl-iterate
  13331. sbcl-multilang-documentation
  13332. sbcl-puri
  13333. sbcl-pzmq
  13334. sbcl-shasht
  13335. sbcl-static-vectors
  13336. sbcl-trivial-do
  13337. sbcl-trivial-garbage
  13338. sbcl-trivial-gray-streams
  13339. sbcl-trivial-mimes))
  13340. (home-page "https://yitzchak.github.io/common-lisp-jupyter/")
  13341. (synopsis "Common Lisp kernel for Jupyter")
  13342. (description
  13343. "This is a Common Lisp kernel for Jupyter along with a library for
  13344. building Jupyter kernels, based on Maxima-Jupyter which was based on
  13345. @code{cl-jupyter}.")
  13346. (license license:expat))))
  13347. (define-public ecl-common-lisp-jupyter
  13348. (sbcl-package->ecl-package sbcl-common-lisp-jupyter))
  13349. (define-public cl-common-lisp-jupyter
  13350. (sbcl-package->cl-source-package sbcl-common-lisp-jupyter))
  13351. (define-public sbcl-radiance
  13352. (let ((commit "5ffbe1f157edd17a13194495099efd81e052df85")
  13353. (revision "1"))
  13354. (package
  13355. (name "sbcl-radiance")
  13356. (version (git-version "2.1.2" revision commit))
  13357. (source
  13358. (origin
  13359. (method git-fetch)
  13360. (uri (git-reference
  13361. (url "https://github.com/Shirakumo/radiance")
  13362. (commit commit)))
  13363. (file-name (git-file-name "radiance" version))
  13364. (sha256
  13365. (base32 "0hbkcnmnlj1cqzbv18zmla2iwbl65kxilz9764hndf8x8as1539c"))))
  13366. (build-system asdf-build-system/sbcl)
  13367. (arguments
  13368. `(#:tests? #f ; TODO: The tests require some configuration.
  13369. #:phases
  13370. (modify-phases %standard-phases
  13371. (add-after 'unpack 'disable-quicklisp
  13372. (lambda _
  13373. ;; Disable the automatic installation of systems by Quicklisp.
  13374. ;; (Maybe there would be a way to package Quicklisp and make it
  13375. ;; install things in the user's directory instead of
  13376. ;; /gnu/store/...).
  13377. (substitute* "interfaces.lisp"
  13378. (("\\(unless \\(asdf:find-system configured-implementation NIL\\)"
  13379. all)
  13380. (string-append "#+quicklisp " all))))))))
  13381. (native-inputs
  13382. `(("alexandria" ,sbcl-alexandria)
  13383. ("dexador" ,sbcl-dexador)
  13384. ("parachute" ,sbcl-parachute)
  13385. ("verbose" ,sbcl-verbose)))
  13386. (inputs
  13387. `(("babel" ,sbcl-babel)
  13388. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  13389. ("cl-ppcre" ,sbcl-cl-ppcre)
  13390. ("closer-mop" ,sbcl-closer-mop)
  13391. ("documentation-utils" ,sbcl-documentation-utils)
  13392. ("deploy" ,sbcl-deploy)
  13393. ("form-fiddle" ,sbcl-form-fiddle)
  13394. ("lambda-fiddle" ,sbcl-lambda-fiddle)
  13395. ("local-time" ,sbcl-local-time)
  13396. ("modularize-hooks" ,sbcl-modularize-hooks)
  13397. ("modularize-interfaces" ,sbcl-modularize-interfaces)
  13398. ("puri" ,sbcl-puri)
  13399. ("trivial-indent" ,sbcl-trivial-indent)
  13400. ("trivial-mimes" ,sbcl-trivial-mimes)
  13401. ("ubiquitous-concurrent" ,sbcl-ubiquitous)))
  13402. (home-page "https://shirakumo.github.io/radiance/")
  13403. (synopsis "Common Lisp web application environment")
  13404. (description
  13405. "Radiance is a web application environment, which is sort of like a web
  13406. framework, but more general, more flexible. It should let you write personal
  13407. websites and generally deployable applications easily and in such a way that
  13408. they can be used on practically any setup without having to undergo special
  13409. adaptations.")
  13410. (license license:zlib))))
  13411. (define-public ecl-radiance
  13412. (sbcl-package->ecl-package sbcl-radiance))
  13413. (define-public cl-radiance
  13414. (sbcl-package->cl-source-package sbcl-radiance))
  13415. (define-public sbcl-daemon
  13416. (let ((commit "d5652f4332c3cee21e9bf83b9237129605004597")
  13417. (revision "1"))
  13418. (package
  13419. (name "sbcl-daemon")
  13420. (version (git-version "0.0.4" revision commit))
  13421. (source
  13422. (origin
  13423. (method git-fetch)
  13424. (uri (git-reference
  13425. (url "https://github.com/snmsts/daemon")
  13426. (commit commit)))
  13427. (file-name (git-file-name "daemon" version))
  13428. (sha256
  13429. (base32 "1kdxfnhh9fz34j8qs7pn7mwjz3v33q4v9nh0hqkyzraq5xs2j3f4"))))
  13430. (build-system asdf-build-system/sbcl)
  13431. (inputs
  13432. (list sbcl-trivial-features))
  13433. (home-page "https://github.com/snmsts/daemon")
  13434. (synopsis "Daemonize Common Lisp processes")
  13435. (description
  13436. "DAEMON provides the functionality of daemonizing Common Lisp processes
  13437. on UNIX like platforms.")
  13438. (license license:expat))))
  13439. (define-public ecl-daemon
  13440. (sbcl-package->ecl-package sbcl-daemon))
  13441. (define-public cl-daemon
  13442. (sbcl-package->cl-source-package sbcl-daemon))
  13443. (define-public sbcl-file-attributes
  13444. (let ((commit "bbde396438f37d676de9775239115410bec4da2d"))
  13445. (package
  13446. (name "sbcl-file-attributes")
  13447. (version (git-version "1.0.0" "2" commit))
  13448. (source
  13449. (origin
  13450. (method git-fetch)
  13451. (uri (git-reference
  13452. (url "https://github.com/Shinmera/file-attributes/")
  13453. (commit commit)))
  13454. (file-name (git-file-name name version))
  13455. (sha256
  13456. (base32 "0n8q818ry2shggjfhp8gjby8v5mla9pg97c5g19pcglpnwim7a74"))))
  13457. (build-system asdf-build-system/sbcl)
  13458. (inputs
  13459. (list sbcl-cffi sbcl-documentation-utils sbcl-trivial-features))
  13460. (home-page "https://shinmera.github.io/file-attributes/")
  13461. (synopsis "Access to common file attributes in Common Lisp")
  13462. (description
  13463. "This is a small OS portability library to retrieve and set file
  13464. attributes not supported by the Common Lisp standard functions.")
  13465. (license license:zlib))))
  13466. (define-public ecl-file-attributes
  13467. (sbcl-package->ecl-package sbcl-file-attributes))
  13468. (define-public cl-file-attributes
  13469. (sbcl-package->cl-source-package sbcl-file-attributes))
  13470. (define-public sbcl-cl-difflib
  13471. (let ((commit "98eb335c693f1881584b83ca7be4a0fe05355c4e")
  13472. (revision "0"))
  13473. (package
  13474. (name "sbcl-cl-difflib")
  13475. (version (git-version "0.2" revision commit))
  13476. (source
  13477. (origin
  13478. (method git-fetch)
  13479. (uri (git-reference
  13480. (url "https://github.com/wiseman/cl-difflib")
  13481. (commit commit)))
  13482. (file-name
  13483. (git-file-name name version))
  13484. (sha256
  13485. (base32 "08if0abhqg191xcz9s7xv8faqq51nswzp8hw423fkqjzr24pmq48"))))
  13486. (build-system asdf-build-system/sbcl)
  13487. ;; Due to the age of this library tests use some deprecated
  13488. ;; functionality and keep failing.
  13489. (arguments
  13490. '(#:tests? #f
  13491. #:asd-files '("cl-difflib.asd")))
  13492. (home-page "https://github.com/wiseman/cl-difflib")
  13493. (synopsis "Compute differences between pairs of sequences")
  13494. (description
  13495. "A Common Lisp library for computing differences between
  13496. sequences based on the Python difflib module.")
  13497. (license license:expat))))
  13498. (define-public ecl-cl-difflib
  13499. (sbcl-package->ecl-package sbcl-cl-difflib))
  13500. (define-public cl-difflib
  13501. (sbcl-package->cl-source-package sbcl-cl-difflib))
  13502. (define-public sbcl-cl-html-diff
  13503. (let ((commit "5a0b39d1c524278d6f60851d7786bb2585614310")
  13504. (revision "0"))
  13505. (package
  13506. (name "sbcl-cl-html-diff")
  13507. (version (git-version "0.1" revision commit))
  13508. (source
  13509. (origin
  13510. (method git-fetch)
  13511. (uri (git-reference
  13512. (url "https://github.com/wiseman/cl-html-diff")
  13513. (commit commit)))
  13514. (file-name
  13515. (git-file-name name version))
  13516. (sha256
  13517. (base32 "1varnijivzd4jpimn1cz8p5ks713zzha5cgl4vmb0xr8ahravwzb"))))
  13518. (build-system asdf-build-system/sbcl)
  13519. (inputs
  13520. (list sbcl-cl-difflib))
  13521. (home-page "https://github.com/wiseman/cl-html-diff")
  13522. (synopsis "Generate a human-readable diff of two HTML documents")
  13523. (description
  13524. "A Common Lisp library for generating a human-readable diff of two
  13525. HTML documents.")
  13526. (license license:expat))))
  13527. (define-public ecl-cl-html-diff
  13528. (sbcl-package->ecl-package sbcl-cl-html-diff))
  13529. (define-public cl-html-diff
  13530. (sbcl-package->cl-source-package sbcl-cl-html-diff))
  13531. (define-public sbcl-tooter
  13532. (let ((commit "ec97bee3431c55913078e532daae81eb0fd90372")
  13533. (revision "3"))
  13534. (package
  13535. (name "sbcl-tooter")
  13536. (version (git-version "1.0.0" revision commit))
  13537. (source
  13538. (origin
  13539. (method git-fetch)
  13540. (uri (git-reference
  13541. (url "https://github.com/Shinmera/tooter")
  13542. (commit commit)))
  13543. (file-name (git-file-name "tooter" version))
  13544. (sha256
  13545. (base32 "02vpjaq38d6laaqmsana9f13c38xzr0xwy05fcfkmzdhh0kllpkv"))))
  13546. (build-system asdf-build-system/sbcl)
  13547. (inputs
  13548. (list sbcl-cl-ppcre sbcl-documentation-utils sbcl-drakma
  13549. sbcl-yason))
  13550. (synopsis "Common Lisp client library for Mastodon instances")
  13551. (description
  13552. "This is a Common Lisp library implementing the full v1 REST API
  13553. protocol for Mastodon.")
  13554. (home-page "https://shinmera.github.io/tooter/")
  13555. (license license:zlib))))
  13556. (define-public ecl-tooter
  13557. (sbcl-package->ecl-package sbcl-tooter))
  13558. (define-public cl-tooter
  13559. (sbcl-package->cl-source-package sbcl-tooter))
  13560. (define-public sbcl-croatoan
  13561. (let ((commit "5d0949d57a12e7fece8828e089daa339b260da96")
  13562. (revision "5"))
  13563. (package
  13564. (name "sbcl-croatoan")
  13565. (version (git-version "0.0.1" revision commit))
  13566. (source
  13567. (origin
  13568. (method git-fetch)
  13569. (uri (git-reference
  13570. (url "https://github.com/McParen/croatoan")
  13571. (commit commit)))
  13572. (file-name (git-file-name "cl-croatoan" version))
  13573. (sha256
  13574. (base32 "0qsnz10hri95al73vhpqrs7mapz2px0dbwgfn52sbi93gwk5aki9"))))
  13575. (build-system asdf-build-system/sbcl)
  13576. (arguments
  13577. '(#:phases
  13578. (modify-phases %standard-phases
  13579. (add-after 'unpack 'fix-paths
  13580. (lambda* (#:key inputs #:allow-other-keys)
  13581. (substitute* "ncurses/ncurses.lisp"
  13582. (("libncursesw" all)
  13583. (string-append (assoc-ref inputs "ncurses")
  13584. "/lib/"
  13585. all))))))))
  13586. (inputs
  13587. (list ncurses
  13588. sbcl-cffi
  13589. sbcl-trivial-gray-streams
  13590. sbcl-bordeaux-threads))
  13591. (synopsis "Common Lisp bindings for the ncurses terminal library")
  13592. (description "Croatoan provides high-level Common Lisp CLOS bindings for
  13593. the ncurses terminal library.")
  13594. (home-page "https://github.com/McParen/croatoan")
  13595. (license license:expat))))
  13596. (define-public ecl-croatoan
  13597. (sbcl-package->ecl-package sbcl-croatoan))
  13598. (define-public cl-croatoan
  13599. (sbcl-package->cl-source-package sbcl-croatoan))
  13600. (define-public sbcl-cl-spark
  13601. (let ((commit "4e34bcebdcf8e45265986eb43ad4ad03bb41a581")
  13602. (revision "1"))
  13603. (package
  13604. (name "sbcl-cl-spark")
  13605. (version (git-version "0.1.13" revision commit))
  13606. (source
  13607. (origin
  13608. (method git-fetch)
  13609. (uri (git-reference
  13610. (url "https://github.com/tkych/cl-spark")
  13611. (commit commit)))
  13612. (file-name (git-file-name "cl-spark" version))
  13613. (sha256
  13614. (base32 "0my1fsgi2rjaqkpk934f2bjy63pmnj7faza3fzvnk6k3l66y19nk"))))
  13615. (build-system asdf-build-system/sbcl)
  13616. (native-inputs
  13617. (list sbcl-fiveam))
  13618. (synopsis "Common Lisp library to make histograms")
  13619. (description "This is a Common Lisp library to make histograms using
  13620. UTF-8 block characters.")
  13621. (home-page "https://github.com/tkych/cl-spark")
  13622. (license license:expat))))
  13623. (define-public ecl-cl-spark
  13624. (sbcl-package->ecl-package sbcl-cl-spark))
  13625. (define-public cl-spark
  13626. (sbcl-package->cl-source-package sbcl-cl-spark))
  13627. (define-public sbcl-access
  13628. (let ((commit "1b26db3760018cdc4624f880f0a1e0155d8f6c50")
  13629. (revision "1"))
  13630. (package
  13631. (name "sbcl-access")
  13632. (version (git-version "1.5.0" revision commit))
  13633. (source
  13634. (origin
  13635. (method git-fetch)
  13636. (uri (git-reference
  13637. (url "https://github.com/sharplispers/access")
  13638. (commit commit)))
  13639. (file-name (git-file-name "access" version))
  13640. (sha256
  13641. (base32 "1knd3n4mpzkc97i1znbas32pscd30416isvmx2pjmgvar6k93pl5"))))
  13642. (build-system asdf-build-system/sbcl)
  13643. (native-inputs
  13644. (list sbcl-lisp-unit2))
  13645. (inputs
  13646. (list sbcl-alexandria sbcl-anaphora sbcl-closer-mop
  13647. sbcl-cl-interpol sbcl-iterate))
  13648. (synopsis
  13649. "Common lisp library to unify access to dictionary-like structures")
  13650. (description
  13651. "This is a Common lisp library to unify access to the most common
  13652. dictionary-like data structures.")
  13653. (home-page "https://github.com/sharplispers/access")
  13654. (license license:bsd-3))))
  13655. (define-public ecl-access
  13656. (sbcl-package->ecl-package sbcl-access))
  13657. (define-public cl-access
  13658. (sbcl-package->cl-source-package sbcl-access))
  13659. (define-public sbcl-sxql-composer
  13660. (let ((commit "2b2230cb01ae1b68e28921d99e4814046867fb75")
  13661. (revision "1"))
  13662. (package
  13663. (name "sbcl-sxql-composer")
  13664. (version (git-version "0.1" revision commit))
  13665. (source
  13666. (origin
  13667. (method git-fetch)
  13668. (uri (git-reference
  13669. (url "https://github.com/mmontone/sxql-composer")
  13670. (commit commit)))
  13671. (file-name (git-file-name "sxql-composer" version))
  13672. (sha256
  13673. (base32 "1agkrj3ymskzc3c7pxbrj123d1kygjqcls145m0ap3i07q96hh1r"))))
  13674. (build-system asdf-build-system/sbcl)
  13675. (inputs
  13676. (list sbcl-sxql))
  13677. (synopsis "Build and compose SXQL queries dynamically")
  13678. (description
  13679. "This is a Common Lisp library to build and compose SXQL queries
  13680. dynamically.")
  13681. (home-page "https://github.com/mmontone/sxql-composer")
  13682. (license license:expat))))
  13683. (define-public ecl-sxql-composer
  13684. (sbcl-package->ecl-package sbcl-sxql-composer))
  13685. (define-public cl-sxql-composer
  13686. (sbcl-package->cl-source-package sbcl-sxql-composer))
  13687. (define-public sbcl-cl-i18n
  13688. (let ((commit "4216fe9fc7b54033c0d881dbb835b7af786365ed")
  13689. (revision "1"))
  13690. (package
  13691. (name "sbcl-cl-i18n")
  13692. (version (git-version "0.5.1" revision commit))
  13693. (source
  13694. (origin
  13695. (method git-fetch)
  13696. (uri (git-reference
  13697. (url "https://notabug.org/cage/cl-i18n")
  13698. (commit commit)))
  13699. (file-name (git-file-name "cl-i18n" version))
  13700. (sha256
  13701. (base32 "1mdhfkk61djj39vgnns5y1cssd12h0m1cfwd21m8xpa2l3rqvmgf"))))
  13702. (build-system asdf-build-system/sbcl)
  13703. (inputs
  13704. (list sbcl-alexandria sbcl-babel sbcl-cl-ppcre-unicode))
  13705. (synopsis "Internationalisation framework for Common Lisp")
  13706. (description
  13707. "This is a Gettext-style internationalisation framework for Common
  13708. Lisp.")
  13709. (home-page "https://notabug.org/cage/cl-i18n")
  13710. (license license:llgpl))))
  13711. (define-public ecl-cl-i18n
  13712. (sbcl-package->ecl-package sbcl-cl-i18n))
  13713. (define-public cl-i18n
  13714. (sbcl-package->cl-source-package sbcl-cl-i18n))
  13715. (define-public sbcl-crypto-shortcuts
  13716. (let ((commit "7efd22d80e867cd8c9f8f363d4fe7b51ee2dadc0")
  13717. (revision "1"))
  13718. (package
  13719. (name "sbcl-crypto-shortcuts")
  13720. (version (git-version "2.0.0" revision commit))
  13721. (source
  13722. (origin
  13723. (method git-fetch)
  13724. (uri (git-reference
  13725. (url "https://github.com/Shinmera/crypto-shortcuts")
  13726. (commit commit)))
  13727. (file-name (git-file-name "crypto-shortcuts" version))
  13728. (sha256
  13729. (base32 "0c0m0ar04jn7qf2v8c4sivamlzki03r13rnxy8b3n27rh9r6hgin"))))
  13730. (build-system asdf-build-system/sbcl)
  13731. (inputs
  13732. (list sbcl-cl-base64 sbcl-flexi-streams sbcl-ironclad))
  13733. (synopsis "Collection of common cryptography functions")
  13734. (description
  13735. "This is a collection of common cryptography functions for Common
  13736. Lisp.")
  13737. (home-page "https://shinmera.github.io/crypto-shortcuts/")
  13738. (license license:zlib))))
  13739. (define-public ecl-crypto-shortcuts
  13740. (sbcl-package->ecl-package sbcl-crypto-shortcuts))
  13741. (define-public cl-crypto-shortcuts
  13742. (sbcl-package->cl-source-package sbcl-crypto-shortcuts))
  13743. (define-public sbcl-cl-html5-parser
  13744. (let ((commit "74a92eb3a183a0afd089ea33350e816e6b9aeefa")
  13745. (revision "1"))
  13746. (package
  13747. (name "sbcl-cl-html5-parser")
  13748. (version (git-version "0.0.0" revision commit))
  13749. (source
  13750. (origin
  13751. (method git-fetch)
  13752. (uri (git-reference
  13753. (url "https://github.com/rotatef/cl-html5-parser")
  13754. (commit commit)))
  13755. (file-name (git-file-name "cl-html5-parser" version))
  13756. (sha256
  13757. (base32 "04if61wigylsmn996rbfl8ylsd0d9hzdmg7p2wiglncibjzcl5k9"))))
  13758. (build-system asdf-build-system/sbcl)
  13759. (native-inputs
  13760. (list sbcl-json-streams sbcl-split-sequence sbcl-stefil))
  13761. (inputs
  13762. (list sbcl-cl-ppcre sbcl-flexi-streams sbcl-string-case))
  13763. (synopsis "HTML5 parser for Common Lisp")
  13764. (description "This a Common Lisp library to parse HTML5 documents.")
  13765. (home-page "https://github.com/rotatef/cl-html5-parser")
  13766. (license license:lgpl3+))))
  13767. (define-public ecl-cl-html5-parser
  13768. (sbcl-package->ecl-package sbcl-cl-html5-parser))
  13769. (define-public cl-html5-parser
  13770. (sbcl-package->cl-source-package sbcl-cl-html5-parser))
  13771. (define-public sbcl-percent-encoding
  13772. (let ((commit "c1224e22bc8048fbd3ebbc9329715a0c1b673170")
  13773. (revision "1"))
  13774. (package
  13775. (name "sbcl-percent-encoding")
  13776. (version (git-version "0.1" revision commit))
  13777. (source
  13778. (origin
  13779. (method git-fetch)
  13780. (uri (git-reference
  13781. (url "https://github.com/llibra/percent-encoding")
  13782. (commit commit)))
  13783. (file-name (git-file-name "percent-encoding" version))
  13784. (sha256
  13785. (base32 "0q1lh3sa6mkjr5gcdkgimkpc29rgf9cjhv90f61h8ridj28grq0h"))))
  13786. (build-system asdf-build-system/sbcl)
  13787. (native-inputs
  13788. (list sbcl-fiveam))
  13789. (inputs
  13790. (list sbcl-anaphora sbcl-babel))
  13791. (synopsis "RFC 3986 percent-encoding library")
  13792. (description
  13793. "This is a Common Lisp library providing RFC 3986 percent-encoding.")
  13794. (home-page "https://github.com/llibra/percent-encoding")
  13795. (license license:expat))))
  13796. (define-public ecl-percent-encoding
  13797. (sbcl-package->ecl-package sbcl-percent-encoding))
  13798. (define-public cl-percent-encoding
  13799. (sbcl-package->cl-source-package sbcl-percent-encoding))
  13800. (define-public sbcl-cl-mount-info
  13801. (let ((commit "2024f5037a7f63db3e3587dc9972cd7b9318f06b")
  13802. (revision "1"))
  13803. (package
  13804. (name "sbcl-cl-mount-info")
  13805. (version (git-version "0.0.1" revision commit))
  13806. (source
  13807. (origin
  13808. (method git-fetch)
  13809. (uri (git-reference
  13810. (url "https://notabug.org/cage/cl-mount-info.git")
  13811. (commit commit)))
  13812. (file-name (git-file-name "cl-mount-info" version))
  13813. (sha256
  13814. (base32 "0vza9gj9q42nzb5v8aj22lmn4aqx9vrddsb5a343nbwfz89hbh9x"))))
  13815. (build-system asdf-build-system/sbcl)
  13816. (inputs
  13817. (list sbcl-alexandria sbcl-cffi sbcl-cl-ppcre))
  13818. (home-page "https://notabug.org/cage/cl-mount-info.git")
  13819. (synopsis "Library to get information about mounted filesystems")
  13820. (description
  13821. "CL-MOUNT-INFO is a Common Lisp wrapper around @code{getmntent(3)} and
  13822. related C functions to get information about the mounted file system.")
  13823. (license license:lgpl3))))
  13824. (define-public ecl-cl-mount-info
  13825. (sbcl-package->ecl-package sbcl-cl-mount-info))
  13826. (define-public cl-mount-info
  13827. (sbcl-package->cl-source-package sbcl-cl-mount-info))
  13828. (define-public sbcl-cl-diskspace
  13829. (let ((commit "2dce2d0387d58221c452bd76c7b9b7a7de81ef55")
  13830. (revision "1"))
  13831. (package
  13832. (name "sbcl-cl-diskspace")
  13833. (version (git-version "0.3.1" revision commit))
  13834. (source
  13835. (origin
  13836. (method git-fetch)
  13837. (uri (git-reference
  13838. (url "https://github.com/muyinliu/cl-diskspace")
  13839. (commit commit)))
  13840. (file-name (git-file-name "cl-diskspace" version))
  13841. (sha256
  13842. (base32 "0l19hxqw6b8i5i1jdbr45k1xib9axcwdagsp3y8wkb35g6wwc0s7"))))
  13843. (build-system asdf-build-system/sbcl)
  13844. (arguments
  13845. `(#:phases
  13846. (modify-phases %standard-phases
  13847. (add-after 'unpack 'fix-paths
  13848. (lambda* (#:key inputs #:allow-other-keys)
  13849. (substitute* "src/unix/cl-diskspace-list-all-disks-with-df.lisp"
  13850. (("grep")
  13851. (search-input-file inputs "/bin/grep")))
  13852. (substitute* "src/unix/cl-diskspace-list-all-disks-with-df.lisp"
  13853. (("/bin/df")
  13854. (which "df")))
  13855. #t)))))
  13856. (inputs
  13857. `(("cl-ppcre" ,sbcl-cl-ppcre)
  13858. ("cffi" ,sbcl-cffi)
  13859. ("grep" ,grep)))
  13860. (home-page "https://github.com/muyinliu/cl-diskspace")
  13861. (synopsis "Disk space information library for Common Lisp")
  13862. (description
  13863. "CL-DISKSPACE is a Common Lisp library to list disks with the command
  13864. line tool @code{df} and get disk space information using @code{statvfs}.")
  13865. (license license:isc))))
  13866. (define-public ecl-cl-diskspace
  13867. (sbcl-package->ecl-package sbcl-cl-diskspace))
  13868. (define-public cl-diskspace
  13869. (sbcl-package->cl-source-package sbcl-cl-diskspace))
  13870. (define-public sbcl-cl-cpus
  13871. (package
  13872. (name "sbcl-cl-cpus")
  13873. (version "0.0.3")
  13874. (source
  13875. (origin
  13876. (method git-fetch)
  13877. (uri (git-reference
  13878. (url "https://github.com/muyinliu/cl-cpus")
  13879. (commit (string-append "v" version))))
  13880. (file-name (git-file-name "cl-cpus" version))
  13881. (sha256
  13882. (base32 "0sdaff9hpsx7bpkkkqavmxmrrlc2d61gmqjjgn8xchncng4a0rf8"))))
  13883. (build-system asdf-build-system/sbcl)
  13884. (inputs
  13885. (list sbcl-cffi))
  13886. (home-page "https://github.com/muyinliu/cl-cpus")
  13887. (synopsis "Common Lisp feature to get number of CPUs")
  13888. (description
  13889. "This package provides a Common Lisp system which has only one function to
  13890. return the CPU count of the current system.")
  13891. (license license:isc)))
  13892. (define-public ecl-cl-cpus
  13893. (sbcl-package->ecl-package sbcl-cl-cpus))
  13894. (define-public cl-cpus
  13895. (sbcl-package->cl-source-package sbcl-cl-cpus))
  13896. (define-public sbcl-fof
  13897. (package
  13898. (name "sbcl-fof")
  13899. (version "0.2.0")
  13900. (source
  13901. (origin
  13902. (method git-fetch)
  13903. (uri (git-reference
  13904. (url "https://gitlab.com/ambrevar/fof")
  13905. (commit version)))
  13906. (file-name (git-file-name name version))
  13907. (sha256
  13908. (base32 "0j64b7p40h8bq33hqkpgakm3vs1607vyx6n48d7qg3287v1akk6m"))))
  13909. (build-system asdf-build-system/sbcl)
  13910. (arguments
  13911. `(#:phases
  13912. (modify-phases %standard-phases
  13913. (add-after 'unpack 'fix-paths
  13914. (lambda* (#:key inputs #:allow-other-keys)
  13915. (substitute* "ffprobe.lisp"
  13916. (("\\(defvar \\*ffprobe-command\\* \"ffprobe\"\\)")
  13917. (format #f "(defvar *ffprobe-command* \"~a/bin/ffprobe\")"
  13918. (assoc-ref inputs "ffmpeg") )))
  13919. #t)))))
  13920. (inputs
  13921. `(("alexandria" ,sbcl-alexandria)
  13922. ("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star)
  13923. ("local-time" ,sbcl-local-time)
  13924. ("magicffi" ,sbcl-magicffi)
  13925. ("osicat" ,sbcl-osicat)
  13926. ("serapeum" ,sbcl-serapeum)
  13927. ("str" ,sbcl-cl-str)
  13928. ("trivia" ,sbcl-trivia)
  13929. ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)
  13930. ;; Non-CL deps:
  13931. ("ffmpeg" ,ffmpeg)))
  13932. (home-page "https://gitlab.com/ambrevar/fof")
  13933. (synopsis "File object finder library for Common Lisp")
  13934. (description
  13935. "This library enable rapid file search, inspection and manipulation
  13936. straight from the REPL.
  13937. It aims at replacing Unix tools such as @code{find} or @code{du}.
  13938. It also offers a replacement to the @code{pathname} Common Lisp API.
  13939. Slot writers which commit changes to disk, e.g. permissions, modification
  13940. time, etc.")
  13941. (license license:gpl3+)))
  13942. (define-public ecl-fof
  13943. (sbcl-package->ecl-package sbcl-fof))
  13944. (define-public cl-fof
  13945. (sbcl-package->cl-source-package sbcl-fof))
  13946. (define-public sbcl-computable-reals
  13947. (let ((commit "fdc73d75e79d0a4ce6d01c822c950ae2eb137d39"))
  13948. (package
  13949. (name "sbcl-computable-reals")
  13950. (version (git-version "1.1.0" "1" commit))
  13951. (source
  13952. (origin
  13953. (method git-fetch)
  13954. (uri (git-reference
  13955. (url "https://github.com/stylewarning/computable-reals")
  13956. (commit commit)))
  13957. (file-name (git-file-name name version))
  13958. (sha256
  13959. (base32 "0f12axi53x14l12dgf4a1lfq3p1fx7fh7sjfc0db3lk88ph9qfwl"))))
  13960. (build-system asdf-build-system/sbcl)
  13961. (home-page "https://github.com/stylewarning/computable-reals")
  13962. (synopsis "Arbitrary-precision, re-computing real-numbers in Common Lisp")
  13963. (description
  13964. "This library provides arbitrary precision (floating point) real
  13965. numbers in Common Lisp.")
  13966. (license license:bsd-3))))
  13967. (define-public ecl-computable-reals
  13968. (sbcl-package->ecl-package sbcl-computable-reals))
  13969. (define-public cl-computable-reals
  13970. (sbcl-package->cl-source-package sbcl-computable-reals))
  13971. (define-public sbcl-html-template
  13972. (package
  13973. (name "sbcl-html-template")
  13974. (version "0.9.2")
  13975. (source
  13976. (origin
  13977. (method git-fetch)
  13978. (uri (git-reference
  13979. (url "https://github.com/edicl/html-template")
  13980. (commit (string-append "v" version))))
  13981. (file-name (git-file-name name version))
  13982. (sha256
  13983. (base32 "0wz3czvjsn4x971dsiia9f9nvvcmbkablcl75zsvxndkimc93wxb"))))
  13984. (build-system asdf-build-system/sbcl)
  13985. (home-page "https://edicl.github.io/html-template/")
  13986. (synopsis "HTML templates from Common Lisp")
  13987. (description
  13988. "HTML-TEMPLATE is a Common Lisp library which can be used to fill
  13989. templates with arbitrary (string) values at runtime. The result does not have
  13990. to be HTML.
  13991. It is loosely modeled after the Perl module @code{HTML::Template} and
  13992. partially compatible with a its syntax, though both libraries contain some
  13993. extensions that the other does not support.
  13994. HTML-TEMPLATE translates templates into efficient closures which can be
  13995. re-used as often as needed. It uses a cache mechanism so you can update
  13996. templates while your program is running and have the changes take effect
  13997. immediately.")
  13998. (license license:bsd-2)))
  13999. (define-public ecl-html-template
  14000. (sbcl-package->ecl-package sbcl-html-template))
  14001. (define-public cl-html-template
  14002. (sbcl-package->cl-source-package sbcl-html-template))
  14003. (define-public sbcl-quickproject
  14004. (package
  14005. (name "sbcl-quickproject")
  14006. (version "1.4.1")
  14007. (source
  14008. (origin
  14009. (method git-fetch)
  14010. (uri (git-reference
  14011. (url "https://github.com/xach/quickproject")
  14012. (commit (string-append "release-" version))))
  14013. (file-name (git-file-name name version))
  14014. (sha256
  14015. (base32 "1szs8p2wr1yr9mjmj3h3557l6wxzzga0iszimb68z0hb1jj3lva6"))))
  14016. (build-system asdf-build-system/sbcl)
  14017. (inputs
  14018. `(("cl-fad" ,sbcl-cl-fad)
  14019. ("html-template" ,sbcl-html-template)))
  14020. (arguments
  14021. '(#:asd-files '("quickproject.asd")))
  14022. (home-page "https://xach.com/lisp/quickproject/")
  14023. (synopsis "Create Common Lisp project skeletons")
  14024. (description
  14025. "Quickproject provides a quick way to make a Common Lisp project. After
  14026. creating a project, it extends the ASDF registry so the project may be
  14027. immediately loaded.")
  14028. (license license:expat)))
  14029. (define-public ecl-quickproject
  14030. (sbcl-package->ecl-package sbcl-quickproject))
  14031. (define-public cl-quickproject
  14032. (sbcl-package->cl-source-package sbcl-quickproject))
  14033. (define-public sbcl-bodge-math
  14034. (let ((commit "9159b7faf88d440024c07110dbef2abddb20b9af")
  14035. (revision "1"))
  14036. (package
  14037. (name "sbcl-bodge-math")
  14038. (version (git-version "1.0.0" revision commit))
  14039. (source
  14040. (origin
  14041. (method git-fetch)
  14042. (uri (git-reference
  14043. (url "https://github.com/borodust/bodge-math")
  14044. (commit commit)))
  14045. (file-name (git-file-name "bodge-math" version))
  14046. (sha256
  14047. (base32 "0r3vnl9lywn4ksy34apcv6j825qp7l1naddawr14v4lwacndb80v"))))
  14048. (build-system asdf-build-system/sbcl)
  14049. (inputs
  14050. (list sbcl-bodge-utilities sbcl-rtg-math))
  14051. (home-page "https://github.com/borodust/bodge-math")
  14052. (synopsis "Common Lisp core math utilities of BODGE library collection")
  14053. (description
  14054. "This Common Lisp package contains the core math utilities of the
  14055. @emph{Bodge} library collection.")
  14056. (license license:expat))))
  14057. (define-public ecl-bodge-math
  14058. (sbcl-package->ecl-package sbcl-bodge-math))
  14059. (define-public cl-bodge-math
  14060. (sbcl-package->cl-source-package sbcl-bodge-math))
  14061. (define-public sbcl-bodge-blobs-support
  14062. (let ((commit "c5034ca5f4fc3a44dbadeba215a09afd59a404b0")
  14063. (revision "1"))
  14064. (package
  14065. (name "sbcl-bodge-blobs-support")
  14066. (version (git-version "1.0.0" revision commit))
  14067. (source
  14068. (origin
  14069. (method git-fetch)
  14070. (uri (git-reference
  14071. (url "https://github.com/borodust/bodge-blobs-support")
  14072. (commit commit)))
  14073. (file-name (git-file-name "bodge-blobs-support" version))
  14074. (sha256
  14075. (base32 "02nd1x6y1akp1ymv1y4z9ympwbnpd1drwi4f86xbjszxqff6jyj8"))))
  14076. (build-system asdf-build-system/sbcl)
  14077. (native-inputs
  14078. (list sbcl-trivial-features))
  14079. (inputs
  14080. (list sbcl-cffi sbcl-alexandria))
  14081. (home-page "https://github.com/borodust/bodge-blobs-support")
  14082. (synopsis "Common Lisp utilities for blob packages")
  14083. (description
  14084. "This is a Common Lisp library for simplifying packaging and loading of
  14085. compiled foreign library collection.")
  14086. (license license:unlicense))))
  14087. (define-public cl-bodge-blobs-support
  14088. (sbcl-package->cl-source-package sbcl-bodge-blobs-support))
  14089. (define-public ecl-bodge-blobs-support
  14090. (sbcl-package->ecl-package sbcl-bodge-blobs-support))
  14091. (define-public sbcl-cl-conspack
  14092. (let ((commit "fc8473bc6f929696b03b43820596b7c976c4678e")
  14093. (revision "1"))
  14094. (package
  14095. (name "sbcl-cl-conspack")
  14096. (version (git-version "0.0.0" revision commit))
  14097. (source
  14098. (origin
  14099. (method git-fetch)
  14100. (uri (git-reference
  14101. (url "https://github.com/conspack/cl-conspack")
  14102. (commit commit)))
  14103. (file-name (git-file-name "cl-conspack" version))
  14104. (sha256
  14105. (base32 "0b7qzvsrpvnw12hqhjmz0b02sigj0kdjy55j4k7xzmj8684cs8bx"))))
  14106. (build-system asdf-build-system/sbcl)
  14107. ;; FIXME: (Sharlatan-20210331T220652+0100): Test are disabled because of:
  14108. ;;
  14109. ;; Error while trying to load definition for system cl-conspack-test
  14110. ;; from pathname .../cl-conspack/cl-conspack-test.asd:
  14111. ;; Error opening .../checkl/formalize-tmpGHU3ALSV.fasl": Permission denied
  14112. ;;
  14113. ;; It looks like the issues is in CheckL itself as other packages keep
  14114. ;; failing test where it's in use.
  14115. (arguments
  14116. '(#:tests? #f
  14117. #:asd-files '("cl-conspack.asd")))
  14118. (native-inputs
  14119. (list sbcl-checkl))
  14120. (inputs
  14121. `(("alexandria" ,sbcl-alexandria)
  14122. ("closer-mop" ,sbcl-closer-mop)
  14123. ("fast-io" ,sbcl-fast-io)
  14124. ("ieee-floats" ,sbcl-ieee-floats)
  14125. ("trivial-garbage" ,sbcl-trivial-garbage)
  14126. ("trivial-utf-8" ,sbcl-trivial-utf-8)))
  14127. (home-page "https://github.com/conspack/cl-conspack")
  14128. (synopsis "CONSPACK implementation for Common Lisp")
  14129. (description
  14130. "This package provides a CONSPACK implementation for Common Lisp.")
  14131. (license license:bsd-3))))
  14132. (define-public ecl-cl-conspack
  14133. (sbcl-package->ecl-package sbcl-cl-conspack))
  14134. (define-public cl-conspack
  14135. (sbcl-package->cl-source-package sbcl-cl-conspack))
  14136. (define-public sbcl-cl-opengl
  14137. (let ((commit "e2d83e0977b7e7ac3f3d348d8ccc7ccd04e74d59")
  14138. (revision "1"))
  14139. (package
  14140. (name "sbcl-cl-opengl")
  14141. (version (git-version "0.1.0" revision commit))
  14142. (source
  14143. (origin
  14144. (method git-fetch)
  14145. (uri (git-reference
  14146. (url "https://github.com/3b/cl-opengl")
  14147. (commit commit)))
  14148. (file-name (git-file-name "cl-opengl" version))
  14149. (sha256
  14150. (base32 "0mhqmll09f079pnd6mgswz9nvr6h5n27d4q7zpmm2igf1v460id7"))))
  14151. (build-system asdf-build-system/sbcl)
  14152. (arguments
  14153. `(#:asd-systems '("cl-opengl" "cl-glu" "cl-glut")
  14154. #:phases
  14155. (modify-phases %standard-phases
  14156. (add-after 'unpack 'patch-lib-path
  14157. (lambda* (#:key inputs #:allow-other-keys)
  14158. (substitute* "gl/library.lisp"
  14159. (("libGL.so" all)
  14160. (search-input-file inputs "/lib/libGL.so")))
  14161. (substitute* "glu/library.lisp"
  14162. (("libGLU.so" all)
  14163. (search-input-file inputs "/lib/libGLU.so")))
  14164. (substitute* "glut/library.lisp"
  14165. (("libglut.so" all)
  14166. (search-input-file inputs "/lib/libglut.so"))))))))
  14167. (inputs
  14168. `(("alexandria" ,sbcl-alexandria)
  14169. ("cffi" ,sbcl-cffi)
  14170. ("float-features" ,sbcl-float-features)
  14171. ("freeglut" ,freeglut)
  14172. ("glu" ,glu)
  14173. ("mesa" ,mesa)))
  14174. (home-page "https://github.com/3b/cl-opengl")
  14175. (synopsis "Common Lisp bindings to OpenGL, GLU and GLUT APIs")
  14176. (description
  14177. "This package provides a set of bindings and utilities for accessing the
  14178. OpenGL (Mesa), GLU and GLUT (FreeGLUT) APIs using CFFI.")
  14179. (license license:bsd-3))))
  14180. (define-public ecl-cl-opengl
  14181. (sbcl-package->ecl-package sbcl-cl-opengl))
  14182. (define-public cl-opengl
  14183. (sbcl-package->cl-source-package sbcl-cl-opengl))
  14184. (define-public sbcl-shadow
  14185. (let ((commit "b2031adbfba3579b48c9d39ad997e19b79b6852f")
  14186. (revision "1"))
  14187. (package
  14188. (name "sbcl-shadow")
  14189. (version (git-version "0.0.0" revision commit))
  14190. (source
  14191. (origin
  14192. (method git-fetch)
  14193. (uri (git-reference
  14194. (url "https://git.mfiano.net/mfiano/shadow")
  14195. (commit commit)))
  14196. (file-name (git-file-name "shadow" version))
  14197. (sha256
  14198. (base32 "0w1i734gkdkziin74ql2nhx7jdjxx02ylssaa6qdrvnj4br1124a"))))
  14199. (build-system asdf-build-system/sbcl)
  14200. (inputs
  14201. (list sbcl-cffi
  14202. sbcl-cl-opengl
  14203. sbcl-glsl-packing
  14204. sbcl-golden-utils
  14205. sbcl-static-vectors
  14206. sbcl-varjo))
  14207. (home-page "https://git.mfiano.net/mfiano/shadow")
  14208. (synopsis "Management system for OpenGL shader programs")
  14209. (description
  14210. "This package provides a Common Lisp library for defining OpenGL shader
  14211. programs. There are also functions for referencing shader programs by name,
  14212. querying for basic information about them, modifying uniform variables
  14213. throughout the lifecycle of an OpenGL application, and managing certain OpenGL
  14214. buffer object types (UBO, SSBO currently).")
  14215. (license license:expat))))
  14216. (define-public ecl-shadow
  14217. (sbcl-package->ecl-package sbcl-shadow))
  14218. (define-public cl-shadow
  14219. (sbcl-package->cl-source-package sbcl-shadow))
  14220. (define-public sbcl-umbra
  14221. (let ((commit "d6ef2f6cbfa26180929061129eaf325bf17f73d8")
  14222. (revision "1"))
  14223. (package
  14224. (name "sbcl-umbra")
  14225. (version (git-version "0.0.0" revision commit))
  14226. (source
  14227. (origin
  14228. (method git-fetch)
  14229. (uri (git-reference
  14230. (url "https://git.mfiano.net/mfiano/umbra")
  14231. (commit commit)))
  14232. (file-name (git-file-name "umbra" version))
  14233. (sha256
  14234. (base32 "04vyh2j00zdpb8ryxr8g81wjcmqlz9wrn55r3cypcj4qg970r5wi"))))
  14235. (build-system asdf-build-system/sbcl)
  14236. (inputs
  14237. (list sbcl-golden-utils sbcl-shadow sbcl-varjo))
  14238. (home-page "https://git.mfiano.net/mfiano/umbra")
  14239. (synopsis "Common Lisp library of reusable GPU shader functions")
  14240. (description
  14241. "This is a Common Lisp library consisting of a collection of useful GPU
  14242. shader functions, written with @code{Shadow}.")
  14243. (license license:expat))))
  14244. (define-public ecl-umbra
  14245. (sbcl-package->ecl-package sbcl-umbra))
  14246. (define-public cl-umbra
  14247. (sbcl-package->cl-source-package sbcl-umbra))
  14248. (define-public sbcl-abstract-classes
  14249. (let ((commit "7fa74f1e057f9ba7c1ffecff14f049f979e45267")
  14250. (revision "1"))
  14251. (package
  14252. (name "sbcl-abstract-classes")
  14253. (version (git-version "1.7.0" revision commit))
  14254. (source
  14255. (origin
  14256. (method git-fetch)
  14257. (uri (git-reference
  14258. (url "https://bitbucket.org/eeeickythump/cl-abstract-classes")
  14259. (commit commit)))
  14260. (file-name (git-file-name "cl-abstract-classes" version))
  14261. (sha256
  14262. (base32 "06lby4i6xbbgs7kgb0f3fqybvyskyg6djhrf967lnysv7hn3zpg9"))))
  14263. (build-system asdf-build-system/sbcl)
  14264. (inputs
  14265. `(("closer-mop" ,sbcl-closer-mop)))
  14266. (arguments
  14267. `(#:asd-systems '("abstract-classes" "singleton-classes")))
  14268. (home-page "https://bitbucket.org/eeeickythump/cl-abstract-classes")
  14269. (synopsis "Abstract, final, and singleton metaclasses for CLOS")
  14270. (description
  14271. "This package provides Common Lisp extension to the MOP to allow
  14272. abstract, final and singleton classes.")
  14273. (license license:public-domain))))
  14274. (define-public ecl-abstract-classes
  14275. (sbcl-package->ecl-package sbcl-abstract-classes))
  14276. (define-public cl-abstract-classes
  14277. (sbcl-package->cl-source-package sbcl-abstract-classes))
  14278. (define-public sbcl-coalton
  14279. (let ((commit "012f6c8db6d73df16f7729090a12a929fb82db17")
  14280. (revision "2"))
  14281. (package
  14282. (name "sbcl-coalton")
  14283. (version (git-version "0.0.1" revision commit))
  14284. (source
  14285. (origin
  14286. (method git-fetch)
  14287. (uri (git-reference
  14288. (url "https://github.com/coalton-lang/coalton")
  14289. (commit commit)))
  14290. (file-name (git-file-name "coalton" version))
  14291. (sha256
  14292. (base32 "1j3d12vyyn7y9nz2an4xmaa5si0jbxbwq7y61hq2b7vk376zvw18"))))
  14293. (build-system asdf-build-system/sbcl)
  14294. (native-inputs
  14295. (list sbcl-fiasco))
  14296. (inputs
  14297. (list sbcl-alexandria
  14298. sbcl-float-features
  14299. sbcl-fset
  14300. sbcl-global-vars
  14301. sbcl-json-streams
  14302. sbcl-serapeum
  14303. sbcl-trivia))
  14304. (home-page "https://coalton-lang.github.io")
  14305. (synopsis "Dialect of ML in Common Lisp")
  14306. (description
  14307. "Coalton is a dialect of ML embedded in Common Lisp. It emphasizes
  14308. practicality and interoperability with Lisp, and is intended to be a DSL that
  14309. allows one to gradually make their programs safer.")
  14310. (license license:expat))))
  14311. (define-public ecl-coalton
  14312. (sbcl-package->ecl-package sbcl-coalton))
  14313. (define-public cl-coalton
  14314. (sbcl-package->cl-source-package sbcl-coalton))
  14315. (define-public sbcl-clip
  14316. (let ((commit "7afa68702fbb99c47ed115ea0faccd97a29d9b2e")
  14317. (revision "1"))
  14318. (package
  14319. (name "sbcl-clip")
  14320. (version (git-version "0.7.0" revision commit))
  14321. (source
  14322. (origin
  14323. (method git-fetch)
  14324. (uri (git-reference
  14325. (url "https://github.com/shinmera/clip")
  14326. (commit commit)))
  14327. (file-name (git-file-name "clip" version))
  14328. (sha256
  14329. (base32 "13kkajkva2shm19fvn4yashsw18l6imv2rmy3hmpcky7g5ay7bv3"))))
  14330. (build-system asdf-build-system/sbcl)
  14331. (inputs
  14332. (list sbcl-array-utils sbcl-lquery))
  14333. (home-page "https://shinmera.github.io/clip/")
  14334. (synopsis "Common Lisp HTML templating engine")
  14335. (description
  14336. "Clip is an attempt at a templating library that allows you to write
  14337. templates in a way that is both accessible to direct webdesign and
  14338. flexible. The main idea is to incorporate transformation commands into an HTML
  14339. file through tags and attributes. Clip is heavily dependent on Plump and
  14340. lQuery.")
  14341. (license license:zlib))))
  14342. (define-public ecl-clip
  14343. (sbcl-package->ecl-package sbcl-clip))
  14344. (define-public cl-clip
  14345. (sbcl-package->cl-source-package sbcl-clip))
  14346. (define-public sbcl-pathname-utils
  14347. (let ((commit "70f517e44e13a38e0c8f296613236376d679fa8f")
  14348. (revision "1"))
  14349. (package
  14350. (name "sbcl-pathname-utils")
  14351. (version (git-version "1.1.0" revision commit))
  14352. (source
  14353. (origin
  14354. (method git-fetch)
  14355. (uri (git-reference
  14356. (url "https://github.com/Shinmera/pathname-utils")
  14357. (commit commit)))
  14358. (file-name (git-file-name "pathname-utils" version))
  14359. (sha256
  14360. (base32 "1zm4bf6gajpgmhr7zwf7600zlaf8fs1fcyzabqsh2ma2crkgqdxq"))))
  14361. (build-system asdf-build-system/sbcl)
  14362. (native-inputs
  14363. (list sbcl-parachute))
  14364. (home-page "https://shinmera.github.io/pathname-utils/")
  14365. (synopsis "Collection of utilities to help with pathname operations")
  14366. (description
  14367. "This package provides a Common Lisp system a with collection of common
  14368. tests and operations to help handling pathnames. It does not actually deal in
  14369. handling the accessing of files on the underlying system however.")
  14370. (license license:zlib))))
  14371. (define-public ecl-pathname-utils
  14372. (sbcl-package->ecl-package sbcl-pathname-utils))
  14373. (define-public cl-pathname-utils
  14374. (sbcl-package->cl-source-package sbcl-pathname-utils))
  14375. (define-public sbcl-terrable
  14376. (let ((commit "e4fe23ffa08e8d53a8168105b413861da59cc786")
  14377. (revision "1"))
  14378. (package
  14379. (name "sbcl-terrable")
  14380. (version (git-version "1.0.0" revision commit))
  14381. (source
  14382. (origin
  14383. (method git-fetch)
  14384. (uri (git-reference
  14385. (url "https://github.com/Shirakumo/terrable")
  14386. (commit commit)))
  14387. (file-name (git-file-name "terrable" version))
  14388. (sha256
  14389. (base32 "0pnqflgz410zydc1ivwnd8hcl24bgr7x12yjzr7g4lq3ibc8y97b"))))
  14390. (build-system asdf-build-system/sbcl)
  14391. (inputs
  14392. (list sbcl-documentation-utils sbcl-fast-io sbcl-ieee-floats
  14393. sbcl-static-vectors sbcl-trivial-garbage))
  14394. (home-page "https://shirakumo.github.io/terrable/")
  14395. (synopsis "Parser library for Terragen TER terrain files")
  14396. (description
  14397. "This package provides Common Lisp support for reading the Terragen
  14398. @code{.TER} format. The format specification can be found at
  14399. @url{https://planetside.co.uk/wiki/index.php?title=Terragen_.TER_Format}")
  14400. (license license:zlib))))
  14401. (define-public ecl-terrable
  14402. (sbcl-package->ecl-package sbcl-terrable))
  14403. (define-public cl-terrable
  14404. (sbcl-package->cl-source-package sbcl-terrable))
  14405. (define-public sbcl-simple-rgb
  14406. (let ((commit "ba9b0689362c28aa6a91c0636796c6c372657293")
  14407. (revision "1"))
  14408. (package
  14409. (name "sbcl-simple-rgb")
  14410. (version (git-version "0.01" revision commit))
  14411. (source
  14412. (origin
  14413. (method git-fetch)
  14414. (uri (git-reference
  14415. (url "https://github.com/wmannis/simple-rgb/")
  14416. (commit commit)))
  14417. (file-name (git-file-name name version))
  14418. (sha256
  14419. (base32 "0ggv0h2n4mvwnggjr1b40gw667gnyykzki2zadaczi38ydzyzlp1"))))
  14420. (build-system asdf-build-system/sbcl)
  14421. (home-page "https://github.com/wmannis/simple-rgb")
  14422. (synopsis "Manipulate colors in RGB format")
  14423. (description
  14424. "This Common Lisp library focuses on the small set of basic color
  14425. manipulations (lightening, compliments, etc.) you might use to generate a
  14426. color palette for a GUI or web page.")
  14427. (license license:bsd-2))))
  14428. (define-public ecl-simple-rgb
  14429. (sbcl-package->ecl-package sbcl-simple-rgb))
  14430. (define-public cl-simple-rgb
  14431. (sbcl-package->cl-source-package sbcl-simple-rgb))
  14432. (define-public sbcl-cl-qprint
  14433. (let ((commit "bfe398551cbfb7ca84a9ba59a26a1116ac5c06eb")
  14434. (revision "1"))
  14435. (package
  14436. (name "sbcl-cl-qprint")
  14437. (version (git-version "0.9.0" revision commit))
  14438. (source
  14439. (origin
  14440. (method git-fetch)
  14441. (uri (git-reference
  14442. (url "https://github.com/eugeneia/cl-qprint/")
  14443. (commit commit)))
  14444. (file-name (git-file-name name version))
  14445. (sha256
  14446. (base32 "099h0rrdzxnlmn8avi72mg2dl0kccp7w01b2p9nwyy4b8yr32cir"))))
  14447. (build-system asdf-build-system/sbcl)
  14448. (inputs
  14449. (list sbcl-flexi-streams))
  14450. (home-page "https://github.com/eugeneia/cl-qprint/")
  14451. (synopsis "Implementation of the quoted-printable encoding")
  14452. (description
  14453. "This Common Lisp library implements the quoted-printable encoding as
  14454. described in RFC 2045 (see @url{http://tools.ietf.org/html/rfc2045}).")
  14455. (license license:lgpl2.1))))
  14456. (define-public ecl-cl-qprint
  14457. (sbcl-package->ecl-package sbcl-cl-qprint))
  14458. (define-public cl-qprint
  14459. (sbcl-package->cl-source-package sbcl-cl-qprint))
  14460. (define-public sbcl-cl-mime
  14461. (let ((commit "d30a28e0a40393bd3af7d138daa05319ed2e9d07")
  14462. (revision "1"))
  14463. (package
  14464. (name "sbcl-cl-mime")
  14465. ;; One commit says "update to cl-mime-0.5.3", even though the .asd is at 0.5.1.
  14466. (version (git-version "0.5.3" revision commit))
  14467. (source
  14468. (origin
  14469. (method git-fetch)
  14470. (uri (git-reference
  14471. ;; Maintained fork according to http://www.cliki.net/CL-MIME:
  14472. (url "https://github.com/40ants/cl-mime")
  14473. (commit commit)))
  14474. (file-name (git-file-name name version))
  14475. (sha256
  14476. (base32 "0qn8if0fj6vzc897pqqqs0m1y107gmzqngpqhqmwrcsp1ckj5k0v"))))
  14477. (build-system asdf-build-system/sbcl)
  14478. (inputs
  14479. (list sbcl-cl-ppcre sbcl-cl-base64 sbcl-cl-qprint))
  14480. (native-inputs
  14481. (list sbcl-rove))
  14482. (home-page "https://github.com/eugeneia/cl-qprint/")
  14483. (synopsis "Read and print MIME content in Common Lisp")
  14484. (description
  14485. "This is a Common Lisp library for reading and printing MIME content.
  14486. It supports automatic conversion between 7-bit, quoted-printable and base64
  14487. encodings.")
  14488. (license license:lgpl2.1))))
  14489. (define-public ecl-cl-mime
  14490. (sbcl-package->ecl-package sbcl-cl-mime))
  14491. (define-public cl-mime
  14492. (sbcl-package->cl-source-package sbcl-cl-mime))
  14493. (define-public sbcl-lispbuilder-sdl
  14494. (let ((commit "589b3c6d552bbec4b520f61388117d6c7b3de5ab"))
  14495. (package
  14496. (name "sbcl-lispbuilder-sdl")
  14497. (version (git-version "0.9.8.2" "1" commit))
  14498. (source
  14499. (origin
  14500. (method git-fetch)
  14501. (uri (git-reference
  14502. (url "https://github.com/lispbuilder/lispbuilder")
  14503. (commit commit)))
  14504. (file-name (git-file-name name version))
  14505. (sha256
  14506. (base32 "0zga59fjlhq3mhwbf80qwqwpkjkxqnn2mhxajlb8563vhn3dbafp"))))
  14507. (build-system asdf-build-system/sbcl)
  14508. (inputs
  14509. `(("cffi" ,sbcl-cffi)
  14510. ("trivial-garbage" ,sbcl-trivial-garbage)
  14511. ("sdl" ,sdl)))
  14512. (arguments
  14513. `(#:phases
  14514. (modify-phases %standard-phases
  14515. (add-after 'unpack 'cd-sdl
  14516. (lambda _
  14517. (chdir "lispbuilder-sdl")
  14518. #t))
  14519. (add-after 'cd-sdl 'fix-paths
  14520. (lambda* (#:key inputs #:allow-other-keys)
  14521. (substitute* "cffi/library.lisp"
  14522. (("libSDL[^\"]*" all)
  14523. (string-append (assoc-ref inputs "sdl") "/lib/" all)))
  14524. #t)))))
  14525. (home-page "https://github.com/lispbuilder/lispbuilder/wiki/LispbuilderSDL")
  14526. (synopsis "Common Lisp wrapper for SDL")
  14527. (description
  14528. "This library is an SDL wrapper as part of an umbrella project that
  14529. provides cross-platform packages for building large, interactive applications
  14530. in Common Lisp.")
  14531. (license license:expat))))
  14532. (define-public ecl-lispbuilder-sdl
  14533. (sbcl-package->ecl-package sbcl-lispbuilder-sdl))
  14534. (define-public cl-lispbuilder-sdl
  14535. (sbcl-package->cl-source-package sbcl-lispbuilder-sdl))
  14536. (define-public sbcl-dufy
  14537. (package
  14538. (name "sbcl-dufy")
  14539. (version "0.4.1")
  14540. (source
  14541. (origin
  14542. (method git-fetch)
  14543. (uri (git-reference
  14544. (url "https://github.com/privet-kitty/dufy")
  14545. (commit (string-append "v" version))))
  14546. (file-name (git-file-name name version))
  14547. (sha256
  14548. (base32 "15vrp1kayhjb5c1vc9x8wlm8rimk73vpa7yc101cf0gsg1fjazl6"))))
  14549. (build-system asdf-build-system/sbcl)
  14550. (inputs
  14551. (list sbcl-alexandria sbcl-cl-ppcre))
  14552. (native-inputs
  14553. (list sbcl-fiveam sbcl-cl-csv sbcl-parse-float sbcl-lispbuilder-sdl
  14554. sbcl-lparallel))
  14555. (home-page "https://github.com/privet-kitty/dufy")
  14556. (synopsis "Color library for Common Lisp")
  14557. (description
  14558. "Dufy is a library for exact color manipulation and conversion in various
  14559. color spaces, which supports many color models.")
  14560. (license license:expat)))
  14561. (define-public ecl-dufy
  14562. (sbcl-package->ecl-package sbcl-dufy))
  14563. (define-public cl-dufy
  14564. (sbcl-package->cl-source-package sbcl-dufy))
  14565. (define-public sbcl-bknr-datastore
  14566. (let ((commit "c98d44f47cc88d19ff91ca3eefbd9719a8ace022")
  14567. (revision "1"))
  14568. (package
  14569. (name "sbcl-bknr-datastore")
  14570. (version (git-version "0.0.0" revision commit))
  14571. (source
  14572. (origin
  14573. (method git-fetch)
  14574. (uri (git-reference
  14575. (url "https://github.com/hanshuebner/bknr-datastore")
  14576. (commit commit)))
  14577. (file-name (git-file-name "bknr-datastore" version))
  14578. (sha256
  14579. (base32 "1vi3w65fnczqvswkm381n6liqfrzjrg40y698qvj7skj28dm5vrm"))))
  14580. (build-system asdf-build-system/sbcl)
  14581. (arguments
  14582. `(#:asd-systems
  14583. '("bknr.datastore"
  14584. "bknr.impex"
  14585. "bknr.indices"
  14586. "bknr.skip-list"
  14587. "bknr.utils"
  14588. "bknr.xml")
  14589. #:phases
  14590. (modify-phases %standard-phases
  14591. (add-after 'unpack 'enter-source-directory
  14592. (lambda _
  14593. (chdir "src")
  14594. #t)))))
  14595. (native-inputs
  14596. `(("cl-store" ,sbcl-cl-store)
  14597. ("fiveam" ,sbcl-fiveam)
  14598. ("unit-test" ,sbcl-unit-test)))
  14599. (inputs
  14600. `(("alexandria" ,sbcl-alexandria)
  14601. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  14602. ("closer-mop" ,sbcl-closer-mop)
  14603. ("cl-interpol" ,sbcl-cl-interpol)
  14604. ("cl-ppcre" ,sbcl-cl-ppcre)
  14605. ("cxml" ,sbcl-cxml)
  14606. ("flexi-streams" ,sbcl-flexi-streams)
  14607. ("md5" ,sbcl-md5)
  14608. ("trivial-utf-8" ,sbcl-trivial-utf-8)
  14609. ("yason" ,sbcl-yason)))
  14610. (home-page "https://github.com/hanshuebner/bknr-datastore")
  14611. (synopsis "In-memory database for Common Lisp")
  14612. (description
  14613. "BKNR.DATASTORE is an in-memory CLOS based database with transactions
  14614. for Common Lisp.")
  14615. (license license:bsd-0))))
  14616. ;; NOTE: (Sharlatan-20210429T191426+0100):
  14617. ;; There is no port for ECL in upstream yet
  14618. ;; (define-public ecl-bknr-datastore
  14619. ;; (sbcl-package->ecl-package sbcl-bknr-datastore))
  14620. (define-public cl-bknr-datastore
  14621. (sbcl-package->cl-source-package sbcl-bknr-datastore))
  14622. (define-public sbcl-authentic
  14623. (let ((commit "4e9194dda227b98f56dda1c2a2480efcc2d1f973")
  14624. (revision "2"))
  14625. (package
  14626. (name "sbcl-authentic")
  14627. (version (git-version "0.1.2" revision commit))
  14628. (source
  14629. (origin
  14630. (method git-fetch)
  14631. (uri (git-reference
  14632. (url "https://github.com/charje/cl-authentic")
  14633. (commit commit)))
  14634. (file-name (git-file-name "cl-authentic" version))
  14635. (sha256
  14636. (base32 "0ncsxrybnx0pjsndv3j8w4lphlpcsld8sxg3c5b46fb3a8nd4ssf"))))
  14637. (build-system asdf-build-system/sbcl)
  14638. (native-inputs
  14639. (list sbcl-fiveam))
  14640. (inputs
  14641. (list sbcl-clsql sbcl-ironclad))
  14642. (home-page "https://github.com/charje/cl-authentic")
  14643. (synopsis "User/password management for Common Lisp applications")
  14644. (description "Authentic provides a light-weight and extendible
  14645. solution to user/password management for Common Lisp applications. It has
  14646. features such as safe password storage in a database, password reset, user
  14647. confirmation tokens, and user authentication.")
  14648. (license license:llgpl))))
  14649. (define-public ecl-authentic
  14650. (sbcl-package->ecl-package sbcl-authentic))
  14651. (define-public cl-authentic
  14652. (sbcl-package->cl-source-package sbcl-authentic))
  14653. (define-public sbcl-3d-vectors
  14654. (let ((commit "29bb9684df803590deed344af63dbf7b712aabc0")
  14655. (revision "1"))
  14656. (package
  14657. (name "sbcl-3d-vectors")
  14658. (version (git-version "3.1.0" revision commit))
  14659. (source
  14660. (origin
  14661. (method git-fetch)
  14662. (uri (git-reference
  14663. (url "https://github.com/Shinmera/3d-vectors")
  14664. (commit commit)))
  14665. (file-name (git-file-name "3d-vectors" version))
  14666. (sha256
  14667. (base32 "0qc7m5brhpwi531rgmlaj1c609by533a1ia5hv8f90ilm8ksmw3l"))))
  14668. (build-system asdf-build-system/sbcl)
  14669. (native-inputs
  14670. (list sbcl-parachute))
  14671. (inputs
  14672. (list sbcl-documentation-utils))
  14673. (home-page "https://shinmera.github.io/3d-vectors/")
  14674. (synopsis "Utility library implementing 2D, 3D, and 4D vectors")
  14675. (description
  14676. "@code{3D-VECTORS} is a library for vector math in 3D space. It contains
  14677. most of the vector operations one would usually expect out of such a library and
  14678. offers them both in non-modifying and modifying versions where applicable.")
  14679. (license license:zlib))))
  14680. (define-public ecl-3d-vectors
  14681. (sbcl-package->ecl-package sbcl-3d-vectors))
  14682. (define-public cl-3d-vectors
  14683. (sbcl-package->cl-source-package sbcl-3d-vectors))
  14684. (define-public sbcl-3d-matrices
  14685. (let ((commit "f453b521b8f2ceabb01eac94389119dece8c05f8")
  14686. (revision "1"))
  14687. (package
  14688. (name "sbcl-3d-matrices")
  14689. (version (git-version "1.0.0" revision commit))
  14690. (source
  14691. (origin
  14692. (method git-fetch)
  14693. (uri (git-reference
  14694. (url "https://github.com/Shinmera/3d-matrices")
  14695. (commit commit)))
  14696. (file-name (git-file-name "3d-matrices" version))
  14697. (sha256
  14698. (base32 "10q9c96gqzq6k8n89agy0khgimmnsn4s69171m3vhghqa2yv5n6v"))))
  14699. (build-system asdf-build-system/sbcl)
  14700. (native-inputs
  14701. (list sbcl-parachute))
  14702. (inputs
  14703. (list sbcl-3d-vectors sbcl-documentation-utils))
  14704. (home-page "https://shinmera.github.io/3d-matrices/")
  14705. (synopsis "Utility library implementing 2x2, 3x3, 4x4 and NxM matrices")
  14706. (description
  14707. "@code{3D-MATRICES} is a library implementing common matrix operations,
  14708. mainly intended as the counterpiece to @code{3d-vectors} and thus being aimed at
  14709. operations in 3D space.")
  14710. (license license:zlib))))
  14711. (define-public ecl-3d-matrices
  14712. (sbcl-package->ecl-package sbcl-3d-matrices))
  14713. (define-public cl-3d-matrices
  14714. (sbcl-package->cl-source-package sbcl-3d-matrices))
  14715. (define-public sbcl-messagebox
  14716. (let ((commit "ea3688d9a9954bee7079c0173bc7b3f327021e9f")
  14717. (revision "1"))
  14718. (package
  14719. (name "sbcl-messagebox")
  14720. (version (git-version "1.0.0" revision commit))
  14721. (source
  14722. (origin
  14723. (method git-fetch)
  14724. (uri (git-reference
  14725. (url "https://github.com/Shinmera/messagebox")
  14726. (commit commit)))
  14727. (file-name (git-file-name "messagebox" version))
  14728. (sha256
  14729. (base32 "0jkbzlca0wvspgsfj0b0hjwlyyy8jlywsldsbkp79q48fc3aa8jd"))))
  14730. (build-system asdf-build-system/sbcl)
  14731. (arguments
  14732. `(#:phases
  14733. (modify-phases %standard-phases
  14734. (add-after 'unpack 'patch-zenity-path
  14735. (lambda* (#:key inputs #:allow-other-keys)
  14736. (substitute* "zenity.lisp"
  14737. (("\"zenity\"")
  14738. (string-append "\"" (assoc-ref inputs "zenity")
  14739. "/bin/zenity\""))))))))
  14740. (inputs
  14741. `(("documentation-utils" ,sbcl-documentation-utils)
  14742. ("trivial-features" ,sbcl-trivial-features)
  14743. ("zenity" ,zenity)))
  14744. (home-page "https://shinmera.github.io/messagebox/")
  14745. (synopsis "Display a native GUI message box")
  14746. (description
  14747. "This is a small library to display a native GUI message box. This can be
  14748. useful to show error messages and other informational pieces should the
  14749. application fail and be unable to do so using its standard UI.")
  14750. (license license:zlib))))
  14751. (define-public ecl-messagebox
  14752. (sbcl-package->ecl-package sbcl-messagebox))
  14753. (define-public cl-messagebox
  14754. (sbcl-package->cl-source-package sbcl-messagebox))
  14755. (define-public sbcl-glsl-toolkit
  14756. (let ((commit "d00ba1906e3b5eb08ea346ac300a1e77bb999d04")
  14757. (revision "1"))
  14758. (package
  14759. (name "sbcl-glsl-toolkit")
  14760. (version (git-version "1.0.0" revision commit))
  14761. (source
  14762. (origin
  14763. (method git-fetch)
  14764. (uri (git-reference
  14765. (url "https://github.com/Shirakumo/glsl-toolkit")
  14766. (commit commit)))
  14767. (file-name (git-file-name "glsl-toolkit" version))
  14768. (sha256
  14769. (base32 "0as5796yazchq1qkna3srxlz5v7cf7ffny9cbqi41wsa2s20vbh9"))))
  14770. (build-system asdf-build-system/sbcl)
  14771. (inputs
  14772. (list sbcl-cl-ppcre sbcl-documentation-utils sbcl-parse-float
  14773. sbcl-trivial-indent))
  14774. (home-page "https://shirakumo.github.io/glsl-toolkit/")
  14775. (synopsis "Parser for OpenGL Shader Language source files")
  14776. (description
  14777. "This package provides Common Lisp system collecting tools written to
  14778. wrangle OpenGL Shader Language (GLSL) source files.")
  14779. (license license:zlib))))
  14780. (define-public ecl-glsl-toolkit
  14781. (sbcl-package->ecl-package sbcl-glsl-toolkit))
  14782. (define-public cl-glsl-toolkit
  14783. (sbcl-package->cl-source-package sbcl-glsl-toolkit))
  14784. (define-public sbcl-simple-tasks
  14785. (let ((commit "745d4b54eac9bf5d6909792e63ecd2ef8d303cf2")
  14786. (revision "1"))
  14787. (package
  14788. (name "sbcl-simple-tasks")
  14789. (version (git-version "1.3.0" revision commit))
  14790. (source
  14791. (origin
  14792. (method git-fetch)
  14793. (uri (git-reference
  14794. (url "https://github.com/Shinmera/simple-tasks")
  14795. (commit commit)))
  14796. (file-name (git-file-name "simple-tasks" version))
  14797. (sha256
  14798. (base32 "1ls1pij7dvb65g4nam7nvik1218jvfk5iplr48vy290fw3lq7v98"))))
  14799. (build-system asdf-build-system/sbcl)
  14800. (inputs
  14801. (list sbcl-array-utils sbcl-bordeaux-threads sbcl-dissect))
  14802. (home-page "https://shinmera.github.io/simple-tasks/")
  14803. (synopsis "Simple task scheduling framework")
  14804. (description "This is a task scheduling framework for Common Lisp.")
  14805. (license license:zlib))))
  14806. (define-public ecl-simple-tasks
  14807. (sbcl-package->ecl-package sbcl-simple-tasks))
  14808. (define-public cl-simple-tasks
  14809. (sbcl-package->cl-source-package sbcl-simple-tasks))
  14810. (define-public sbcl-trivial-main-thread
  14811. (let ((commit "25f114973bb69eb63e01d0bbfead31f8e682846a")
  14812. (revision "1"))
  14813. (package
  14814. (name "sbcl-trivial-main-thread")
  14815. (version (git-version "1.0.0" revision commit))
  14816. (source
  14817. (origin
  14818. (method git-fetch)
  14819. (uri (git-reference
  14820. (url "https://github.com/Shinmera/trivial-main-thread")
  14821. (commit commit)))
  14822. (file-name (git-file-name "trivial-main-thread" version))
  14823. (sha256
  14824. (base32 "0bw1887i7396lqg75qvmgjfzz4xbiq9w5dp8wxdgrcsm0qwlraw7"))))
  14825. (build-system asdf-build-system/sbcl)
  14826. (inputs
  14827. (list sbcl-bordeaux-threads sbcl-simple-tasks sbcl-trivial-features))
  14828. (home-page "https://shinmera.github.io/trivial-main-thread/")
  14829. (synopsis "Compatibility library to run things in the main thread")
  14830. (description
  14831. "This package provides a Common Lisp system which wraps the
  14832. BORDEAUX-THREADS system to be able to run things in the main thread of the
  14833. implementation, for example drawing calls of GUI applications.")
  14834. (license license:zlib))))
  14835. (define-public ecl-trivial-main-thread
  14836. (sbcl-package->ecl-package sbcl-trivial-main-thread))
  14837. (define-public cl-trivial-main-thread
  14838. (sbcl-package->cl-source-package sbcl-trivial-main-thread))
  14839. (define-public sbcl-cl-package-locks
  14840. (let ((commit "96a358ede7cef416d61d2f699e724fe1d9de602c")
  14841. (revision "1"))
  14842. (package
  14843. (name "sbcl-cl-package-locks")
  14844. (version (git-version "0.0.2" revision commit))
  14845. (source
  14846. (origin
  14847. (method git-fetch)
  14848. (uri (git-reference
  14849. (url "https://github.com/elliottjohnson/cl-package-locks")
  14850. (commit commit)))
  14851. (file-name (git-file-name "cl-package-locks" version))
  14852. (sha256
  14853. (base32 "0g3gfljnvpgd66ccd2sqawlkwqx4a0wsdrg5180va61w869cgxqq"))))
  14854. (build-system asdf-build-system/sbcl)
  14855. (home-page "https://github.com/elliottjohnson/cl-package-locks")
  14856. (synopsis "Compatibility layer for dealing with package locks")
  14857. (description
  14858. "This is a Common Lisp library providing a unified way to work with
  14859. package locks across supported Common Lisp implementations.")
  14860. (license license:expat))))
  14861. (define-public ecl-cl-package-locks
  14862. (sbcl-package->ecl-package sbcl-cl-package-locks))
  14863. (define-public cl-package-locks
  14864. (sbcl-package->cl-source-package sbcl-cl-package-locks))
  14865. (define-public sbcl-cl-typesetting
  14866. (let ((commit "86eba981fc4254addebecf765578ec350d6e3b75")
  14867. (revision "1"))
  14868. (package
  14869. (name "sbcl-cl-typesetting")
  14870. (version (git-version "0.8.0" revision commit))
  14871. (source
  14872. (origin
  14873. (method git-fetch)
  14874. (uri (git-reference
  14875. (url "https://github.com/mbattyani/cl-typesetting")
  14876. (commit commit)))
  14877. (file-name (git-file-name "cl-typesetting" version))
  14878. (sha256
  14879. (base32 "0fcs5mq0gxfczbrg7ay8r4bf5r4g6blvpdbjkhcl8dapcikyn35h"))))
  14880. (build-system asdf-build-system/sbcl)
  14881. (arguments
  14882. ;; NOTE: (Sharlatan-20210515T213014+0100): Circular dependencies with
  14883. ;; cl-typegraph
  14884. `(#:tests? #f))
  14885. (inputs
  14886. `(("cl-pdf" ,sbcl-cl-pdf)
  14887. ("xmls" ,sbcl-xmls)))
  14888. (home-page "https://github.com/mbattyani/cl-typesetting")
  14889. (synopsis "Stand-alone Common Lisp typesetting system")
  14890. (description
  14891. "CL-TYPESETTING is a cross-platform Common Lisp typesetting library for
  14892. all kind of typesetting applications.")
  14893. (license license:bsd-2))))
  14894. (define-public ecl-cl-typesetting
  14895. (sbcl-package->ecl-package sbcl-cl-typesetting))
  14896. (define-public cl-typesetting
  14897. (sbcl-package->cl-source-package sbcl-cl-typesetting))
  14898. (define-public sbcl-shasht
  14899. (let ((commit "4055327ef8e2aaa8627892ab256350ff3cb15e3c")
  14900. (revision "1"))
  14901. (package
  14902. (name "sbcl-shasht")
  14903. (version (git-version "0.1.0" revision commit))
  14904. (source
  14905. (origin
  14906. (method git-fetch)
  14907. (uri (git-reference
  14908. (url "https://github.com/yitzchak/shasht")
  14909. (commit commit)))
  14910. (file-name (git-file-name "shasht" version))
  14911. (sha256
  14912. (base32 "01mh20s5gj0lajq45anxji77ykq1wcg72mn1y9a1k8i7q1ainjlr"))))
  14913. (build-system asdf-build-system/sbcl)
  14914. (native-inputs
  14915. (list sbcl-alexandria sbcl-parachute))
  14916. (inputs
  14917. (list sbcl-trivial-do))
  14918. (home-page "https://yitzchak.github.io/shasht/")
  14919. (synopsis "Common Lisp JSON reading and writing library")
  14920. (description
  14921. "This package provides a Common Lisp library to work with the JSON file
  14922. format.")
  14923. (license license:expat))))
  14924. (define-public ecl-shasht
  14925. (sbcl-package->ecl-package sbcl-shasht))
  14926. (define-public cl-shasht
  14927. (sbcl-package->cl-source-package sbcl-shasht))
  14928. (define-public sbcl-cl-speedy-queue
  14929. (let ((commit "0425c7c62ad3b898a5ec58cd1b3e74f7d91eec4b")
  14930. (revision "1"))
  14931. (package
  14932. (name "sbcl-cl-speedy-queue")
  14933. (version (git-version "0.0.0" revision commit))
  14934. (source
  14935. (origin
  14936. (method git-fetch)
  14937. (uri (git-reference
  14938. (url "https://github.com/zkat/cl-speedy-queue")
  14939. (commit commit)))
  14940. (file-name (git-file-name "cl-speedy-queue" version))
  14941. (sha256
  14942. (base32 "0czhnvxn9lvbjz9h1lb7y18nqrsq3drq5icd3lqdaa07362alriq"))))
  14943. (build-system asdf-build-system/sbcl)
  14944. (home-page "https://github.com/zkat/cl-speedy-queue")
  14945. (synopsis "Lightweight optimized queue for Common Lisp")
  14946. (description
  14947. "This is a lightweight, non-consing, optimized queue implementation for
  14948. Common Lisp.")
  14949. (license license:expat))))
  14950. (define-public cl-speedy-queue
  14951. (sbcl-package->cl-source-package sbcl-cl-speedy-queue))
  14952. (define-public ecl-cl-speedy-queue
  14953. (sbcl-package->ecl-package sbcl-cl-speedy-queue))
  14954. (define-public sbcl-lev
  14955. (let ((commit "7d03c68dad44f1cc4ac2aeeab2d24eb525ad941a")
  14956. (revision "1"))
  14957. (package
  14958. (name "sbcl-lev")
  14959. (version (git-version "0.1.0" revision commit))
  14960. (source
  14961. (origin
  14962. (method git-fetch)
  14963. (uri (git-reference
  14964. (url "https://github.com/fukamachi/lev")
  14965. (commit commit)))
  14966. (file-name (git-file-name "lev" version))
  14967. (sha256
  14968. (base32 "14lfnrvfyg2nnvlwck896p6vgarzc6g4kijmvhi2d8wra7gxzifh"))))
  14969. (build-system asdf-build-system/sbcl)
  14970. (arguments
  14971. ;; NOTE: (Sharlatan-20210520T163300+0100): No tests in upstream
  14972. `(#:tests? #f
  14973. #:phases
  14974. (modify-phases %standard-phases
  14975. (add-after 'unpack 'patch-libev-lib-path
  14976. (lambda* (#:key inputs #:allow-other-keys)
  14977. (substitute* "src/lev.lisp"
  14978. (("libev.so" _)
  14979. (search-input-file inputs "/lib/libev.so"))))))))
  14980. (inputs
  14981. `(("cffi" ,sbcl-cffi)
  14982. ("libev" ,libev)))
  14983. (home-page "https://github.com/fukamachi/lev")
  14984. (synopsis "Common Lisp bindings for libev")
  14985. (description "This package provides Common Lisp bindings for libev.")
  14986. (license license:bsd-2))))
  14987. (define-public cl-lev
  14988. (sbcl-package->cl-source-package sbcl-lev))
  14989. (define-public ecl-lev
  14990. (sbcl-package->ecl-package sbcl-lev))
  14991. (define-public sbcl-woo
  14992. (let ((commit "fba3567be95ed6e782d98a4c1477d3a74b8ad124")
  14993. (revision "1"))
  14994. (package
  14995. (name "sbcl-woo")
  14996. (version (git-version "0.12.0" revision commit))
  14997. (source
  14998. (origin
  14999. (method git-fetch)
  15000. (uri (git-reference
  15001. (url "https://github.com/fukamachi/woo")
  15002. (commit commit)))
  15003. (file-name (git-file-name "woo" version))
  15004. (sha256
  15005. (base32 "06f95x8s8v523gxmrkn9wwgw2pvc3bc66znbgrzhqb30y4aar5v5"))))
  15006. (build-system asdf-build-system/sbcl)
  15007. (arguments
  15008. ;; FIXME: Tests fail because they try to compile clack-test:
  15009. ;;
  15010. ;; Error opening #P"/gnu/store/...-sbcl-clack-2.0.0-1.e3e0328/
  15011. ;; lib/common-lisp/sbcl/clack/src/test-tmpGHU3ALSV.fasl":
  15012. ;;
  15013. ;; Permission denied
  15014. ;;
  15015. ;; clack-test should be compiled when building the sbcl-clack package,
  15016. ;; but it isn't right now because of the circular dependency between
  15017. ;; clack-test and dexador.
  15018. `(#:tests? #f))
  15019. (native-inputs
  15020. `(("clack" ,sbcl-clack)
  15021. ("rove" ,sbcl-rove)))
  15022. (inputs
  15023. `(("alexandria" ,sbcl-alexandria)
  15024. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  15025. ("cffi" ,sbcl-cffi)
  15026. ("cl-speedy-queue" ,sbcl-cl-speedy-queue) ;; Required for ecl build
  15027. ("clack-socket" ,sbcl-clack)
  15028. ("fast-http" ,sbcl-fast-http)
  15029. ("fast-io" ,sbcl-fast-io)
  15030. ("lev" ,sbcl-lev)
  15031. ("quri" ,sbcl-quri)
  15032. ("rove" ,sbcl-rove)
  15033. ("smart-buffer" ,sbcl-smart-buffer)
  15034. ("static-vectors" ,sbcl-static-vectors)
  15035. ("swap-bytes" ,sbcl-swap-bytes)
  15036. ("trivial-utf-8" ,sbcl-trivial-utf-8)
  15037. ("vom" ,sbcl-vom)))
  15038. (home-page "https://github.com/fukamachi/woo")
  15039. (synopsis "Non-blocking HTTP server based on libev")
  15040. (description
  15041. "This package provides the Common Lisp HTTP server @code{WOO}, which
  15042. is built on top of the @code{libev} event library.")
  15043. (license license:expat))))
  15044. (define-public cl-woo
  15045. (sbcl-package->cl-source-package sbcl-woo))
  15046. (define-public ecl-woo
  15047. (sbcl-package->ecl-package sbcl-woo))
  15048. (define-public sbcl-json-streams
  15049. (let ((commit "5da012e8133affbf75024e7500feb37394690752")
  15050. (revision "1"))
  15051. (package
  15052. (name "sbcl-json-streams")
  15053. (version (git-version "0.0.0" revision commit))
  15054. (source
  15055. (origin
  15056. (method git-fetch)
  15057. (uri (git-reference
  15058. (url "https://github.com/rotatef/json-streams")
  15059. (commit commit)))
  15060. (file-name (git-file-name "json-streams" version))
  15061. (sha256
  15062. (base32 "0cia3721im04q73dfkd688d8splgpz03qa4h8s3r39kar4w3xll2"))))
  15063. (build-system asdf-build-system/sbcl)
  15064. (native-inputs
  15065. (list sbcl-cl-quickcheck sbcl-flexi-streams))
  15066. (home-page "https://github.com/rotatef/json-streams")
  15067. (synopsis "Common Lisp library for reading and writing JSON")
  15068. (description
  15069. "This package provides a stream based JSON parser/writer, well suited as
  15070. building block for higher level libraries.")
  15071. (license license:gpl3+))))
  15072. (define-public cl-json-streams
  15073. (sbcl-package->cl-source-package sbcl-json-streams))
  15074. (define-public ecl-json-streams
  15075. (sbcl-package->ecl-package sbcl-json-streams))
  15076. (define-public sbcl-arnesi
  15077. (let ((commit "1e7dc4cb2cad8599113c7492c78f4925e839522e")
  15078. (revision "1"))
  15079. (package
  15080. (name "sbcl-arnesi")
  15081. (version (git-version "2.0.0" revision commit))
  15082. (source
  15083. (origin
  15084. (method git-fetch)
  15085. (uri (git-reference
  15086. (url "https://github.com/AccelerationNet/arnesi")
  15087. (commit commit)))
  15088. (file-name (git-file-name "arnesi" version))
  15089. (sha256
  15090. (base32 "0jgj2xgd1gq6rf8ia43lkmbrbxnp8rgs053br9azfa25ygk3ikbh"))))
  15091. (build-system asdf-build-system/sbcl)
  15092. (arguments
  15093. ;; FIXME: (Sharlatan-20210523T190315+0100): Tests failed on
  15094. ;; special-lisp-var-rebount-in/cc
  15095. ;;
  15096. ;; ; processing (TEST SPECIAL-LISP-VAR-REBOUND-IN/CC ...)
  15097. ;; ; wrote .../sbcl/arnesi/t/call-cc-tmp5GEXGEG5.fasl
  15098. ;; ; compilation finished in 0:00:00.028
  15099. ;; Unhandled SIMPLE-ERROR in thread
  15100. ;; #<SB-THREAD:THREAD "main thread" RUNNING {100B768173}>:
  15101. ;; Sorry, No walker for the special operater DECLARE defined.
  15102. ;;
  15103. ;; Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100B768173}>
  15104. ;; 0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SIMPLE-ERROR "Sorry,
  15105. ;; No walker for the special operater ~S defined."
  15106. ;; {1001FAF9D3}> #<unused argument> :QUIT T)
  15107. ;;
  15108. `(#:tests? #f))
  15109. (native-inputs
  15110. (list sbcl-fiveam))
  15111. (inputs
  15112. `(("cl-ppcre" ,sbcl-cl-ppcre)
  15113. ("collectors" ,sbcl-collectors)
  15114. ("swank" ,sbcl-slime-swank)))
  15115. (home-page "https://github.com/AccelerationNet/arnesi")
  15116. (synopsis "Common Lisp utility suite")
  15117. (description
  15118. "ARNESI is Common Lisp utilities library similar to ALEXANDRIA, ANAPHORA
  15119. or GOLDEN-UTILS.")
  15120. (license license:bsd-3))))
  15121. (define-public ecl-arnesi
  15122. (sbcl-package->ecl-package sbcl-arnesi))
  15123. (define-public cl-arnesi
  15124. (sbcl-package->cl-source-package sbcl-arnesi))
  15125. (define-public sbcl-gettext
  15126. (let ((commit "a432020cbad99fc22cbe6bb9aa8a83a35000d7aa")
  15127. (revision "1"))
  15128. (package
  15129. (name "sbcl-gettext")
  15130. (version (git-version "0.0.0" revision commit))
  15131. (source
  15132. (origin
  15133. (method git-fetch)
  15134. (uri (git-reference
  15135. (url "https://github.com/rotatef/gettext")
  15136. (commit commit)))
  15137. (file-name (git-file-name "gettext" version))
  15138. (sha256
  15139. (base32 "1pzhamgni6k5hi6bbvlb3dm659pcllrrr3vhhn3rpjn238zxg5ar"))))
  15140. (build-system asdf-build-system/sbcl)
  15141. (native-inputs
  15142. (list sbcl-stefil))
  15143. (inputs
  15144. (list sbcl-flexi-streams sbcl-split-sequence sbcl-cl-yacc))
  15145. (home-page "https://github.com/rotatef/gettext")
  15146. (synopsis "Common Lisp implementation of Gettext")
  15147. (description
  15148. "This package provides GNU @code{gettext} completely implemented in
  15149. Common Lisp without any C library bindings.")
  15150. (license license:lgpl3+))))
  15151. (define-public ecl-gettext
  15152. (sbcl-package->ecl-package sbcl-gettext))
  15153. (define-public cl-gettext
  15154. (sbcl-package->cl-source-package sbcl-gettext))
  15155. (define-public sbcl-parser-combinators
  15156. (let ((commit "9c7569a4f6af5e60c0d3a51d9c15c16d1714c845")
  15157. (revision "1"))
  15158. (package
  15159. (name "sbcl-parser-combinators")
  15160. (version (git-version "0.0.0" revision commit))
  15161. (source
  15162. (origin
  15163. (method git-fetch)
  15164. (uri (git-reference
  15165. (url "https://github.com/Ramarren/cl-parser-combinators")
  15166. (commit commit)))
  15167. (file-name (git-file-name "parser-combinators" version))
  15168. (sha256
  15169. (base32 "1k49vha5xm2cklayzpqwg73n4v93xwsbs5in6342pkkiimnidhs8"))))
  15170. (build-system asdf-build-system/sbcl)
  15171. (arguments
  15172. ;; FIXME: (Sharlatan-20210523T184237+0100): Tests require `femlisp', which
  15173. ;; is quite chunky not packaged system yet, enable them when it's packed.
  15174. `(#:tests? #f
  15175. #:test-asd-file "parser-combinators-tests.asd"))
  15176. ;; (native-inputs
  15177. ;; `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)
  15178. ;; ("infix" ,sbcl-femlisp)))
  15179. (inputs
  15180. `(("alexandria" ,sbcl-alexandria)
  15181. ("cl-containers" ,sbcl-cl-containers)
  15182. ("cl-ppcre" ,sbcl-cl-ppcre)
  15183. ("iterate" ,sbcl-iterate)))
  15184. (home-page "https://github.com/Ramarren/cl-parser-combinators")
  15185. (synopsis "Parser combinators in Common Lisp")
  15186. (description
  15187. "PARSER-COMBINATORS is a library implementing monadic parser
  15188. combinators in Common Lisp, similar in concept to Haskell Parsec system.")
  15189. (license license:bsd-3))))
  15190. (define-public ecl-parser-combinators
  15191. (sbcl-package->ecl-package sbcl-parser-combinators))
  15192. (define-public cl-parser-combinators
  15193. (sbcl-package->cl-source-package sbcl-parser-combinators))
  15194. (define-public sbcl-cl-locale
  15195. (let ((commit "0a36cc0dcf5e0a8c8bf97869cd6199980ca25eec")
  15196. (revision "1"))
  15197. (package
  15198. (name "sbcl-cl-locale")
  15199. (version (git-version "0.1.1" revision commit))
  15200. (source
  15201. (origin
  15202. (method git-fetch)
  15203. (uri (git-reference
  15204. (url "https://github.com/fukamachi/cl-locale")
  15205. (commit commit)))
  15206. (file-name (git-file-name "cl-locale" version))
  15207. (sha256
  15208. (base32 "1rhannhpsw1yg1fpflam483a3w9qb1izgyvmnmiddv3dn4qsmn9p"))))
  15209. (build-system asdf-build-system/sbcl)
  15210. (arguments
  15211. '(#:asd-systems '("cl-locale-test" "cl-locale")))
  15212. (native-inputs
  15213. `(("prove" ,sbcl-prove)
  15214. ("flexi-streams" ,sbcl-flexi-streams)))
  15215. (inputs
  15216. `(("anaphora" ,sbcl-anaphora)
  15217. ("arnesi" ,sbcl-arnesi)
  15218. ("cl-annot" ,sbcl-cl-annot)
  15219. ("cl-syntax" ,sbcl-cl-syntax)))
  15220. (home-page "https://github.com/fukamachi/cl-locale")
  15221. (synopsis "Internalization library for Common Lisp")
  15222. (description
  15223. "This package provides a Common Lisp translation library similar to
  15224. CL-I18N and CL-L10N.")
  15225. (license license:llgpl))))
  15226. (define-public ecl-cl-locale
  15227. (sbcl-package->ecl-package sbcl-cl-locale))
  15228. (define-public cl-locale
  15229. (sbcl-package->cl-source-package sbcl-cl-locale))
  15230. (define-public sbcl-cl-slice
  15231. (let ((commit "c531683f287216aebbb0affbe090611fa1b5d697")
  15232. (revision "1"))
  15233. (package
  15234. (name "sbcl-cl-slice")
  15235. (version (git-version "0.1.0" revision commit))
  15236. (source
  15237. (origin
  15238. (method git-fetch)
  15239. (uri (git-reference
  15240. (url "https://github.com/tpapp/cl-slice")
  15241. (commit commit)))
  15242. (file-name (git-file-name "cl-slice" version))
  15243. (sha256
  15244. (base32 "1ybznf4y5lda6bn163jcvj281qzhm24dfcwhbgxmm5n6f27gdccl"))))
  15245. (build-system asdf-build-system/sbcl)
  15246. (native-inputs
  15247. (list sbcl-clunit))
  15248. (inputs
  15249. (list sbcl-alexandria sbcl-anaphora sbcl-let-plus))
  15250. (home-page "https://github.com/tpapp/cl-slice")
  15251. (synopsis "Array slices for Common Lisp")
  15252. (description
  15253. "This package provides a DSL for array slices in Common Lisp.")
  15254. (license license:expat))))
  15255. (define-public ecl-cl-slice
  15256. (sbcl-package->ecl-package sbcl-cl-slice))
  15257. (define-public cl-slice
  15258. (sbcl-package->cl-source-package sbcl-cl-slice))
  15259. (define-public sbcl-djula
  15260. (let ((commit "5df7af35a21503d468a878fc6029caa527a7d204")
  15261. (revision "1"))
  15262. (package
  15263. (name "sbcl-djula")
  15264. (version (git-version "0.2.0" revision commit))
  15265. (source
  15266. (origin
  15267. (method git-fetch)
  15268. (uri (git-reference
  15269. (url "https://github.com/mmontone/djula")
  15270. (commit commit)))
  15271. (file-name (git-file-name "djula" version))
  15272. (sha256
  15273. (base32 "1lk2ypm3sacf60h96a7hv9jwjlxkl4k40yzdalmqdg548vrd1jjm"))))
  15274. (build-system asdf-build-system/sbcl)
  15275. (native-inputs
  15276. (list sbcl-fiveam))
  15277. (inputs
  15278. (list sbcl-access
  15279. sbcl-alexandria
  15280. sbcl-anaphora
  15281. sbcl-babel
  15282. sbcl-cl-locale
  15283. sbcl-cl-ppcre
  15284. sbcl-cl-slice
  15285. sbcl-closer-mop
  15286. sbcl-gettext
  15287. sbcl-iterate
  15288. sbcl-local-time
  15289. sbcl-parser-combinators
  15290. sbcl-split-sequence
  15291. sbcl-trivial-backtrace))
  15292. (home-page "https://mmontone.github.io/djula/")
  15293. (synopsis "Common Lisp port of the Django templating language")
  15294. (description
  15295. "This package provides a Common Lisp templating system based on Python
  15296. Django with a syntax similar to Python Jinja2.")
  15297. (license license:expat))))
  15298. (define-public ecl-djula
  15299. (sbcl-package->ecl-package sbcl-djula))
  15300. (define-public cl-djula
  15301. (sbcl-package->cl-source-package sbcl-djula))
  15302. (define-public sbcl-for
  15303. (let ((commit "2e4fcfa0f9c1d2f4559c58cef20ccefa50ba180d")
  15304. (revision "1"))
  15305. (package
  15306. (name "sbcl-for")
  15307. (version (git-version "1.1.0" revision commit))
  15308. (source
  15309. (origin
  15310. (method git-fetch)
  15311. (uri (git-reference
  15312. (url "https://github.com/Shinmera/for")
  15313. (commit commit)))
  15314. (file-name (git-file-name "for" version))
  15315. (sha256
  15316. (base32 "1akz9ggh33x2cq3h0f1cd0p632v1mbagv3dzsb0r10bwg9lh3nmv"))))
  15317. (build-system asdf-build-system/sbcl)
  15318. (inputs
  15319. (list sbcl-documentation-utils sbcl-form-fiddle sbcl-lambda-fiddle))
  15320. (home-page "https://shinmera.github.io/for/")
  15321. (synopsis "Extensible iteration macro library")
  15322. (description
  15323. "For is a library for an extensible iteration macro. It allows you to write
  15324. concise looping constructs similar to @code{loop} and @code{iterate}. Unlike
  15325. loop however it is extensible and sensible, and unlike iterate it does not
  15326. require code-walking and is easier to extend.")
  15327. (license license:zlib))))
  15328. (define-public ecl-for
  15329. (sbcl-package->ecl-package sbcl-for))
  15330. (define-public cl-for
  15331. (sbcl-package->cl-source-package sbcl-for))
  15332. (define-public sbcl-flare
  15333. (let ((commit "4f9f17a4fc5b368c2a1988b9a20288695b8d8c48")
  15334. (revision "1"))
  15335. (package
  15336. (name "sbcl-flare")
  15337. (version (git-version "1.1.0" revision commit))
  15338. (source
  15339. (origin
  15340. (method git-fetch)
  15341. (uri (git-reference
  15342. (url "https://github.com/Shinmera/flare")
  15343. (commit commit)))
  15344. (file-name (git-file-name "flare" version))
  15345. (sha256
  15346. (base32 "00nm3sjngbflj2gd5q0xs2m136w4kix6krww23nk64pkkyq2fs86"))))
  15347. (build-system asdf-build-system/sbcl)
  15348. (inputs
  15349. (list sbcl-3d-vectors
  15350. sbcl-array-utils
  15351. sbcl-documentation-utils
  15352. sbcl-for
  15353. sbcl-lambda-fiddle
  15354. sbcl-trivial-garbage))
  15355. (home-page "https://shinmera.github.io/flare/")
  15356. (synopsis "Easy particle systems with fine grained control")
  15357. (description
  15358. "FLARE is a library designed to allow quick and precise particle effect
  15359. creations. It does not concern itself with displaying and only with the
  15360. management and movement of particles. As such, it can easily be integrated into
  15361. any existing or future application.")
  15362. (license license:zlib))))
  15363. (define-public ecl-flare
  15364. (sbcl-package->ecl-package sbcl-flare))
  15365. (define-public cl-flare
  15366. (sbcl-package->cl-source-package sbcl-flare))
  15367. (define-public sbcl-simple-inferiors
  15368. (let ((commit "deac886354e03f8a9502ce96f12a0459ce3be671"))
  15369. (package
  15370. (name "sbcl-simple-inferiors")
  15371. (version (git-version "1.1.0" "1" commit))
  15372. (source
  15373. (origin
  15374. (method git-fetch)
  15375. (uri (git-reference
  15376. (url "https://github.com/Shinmera/simple-inferiors")
  15377. (commit commit)))
  15378. (file-name (git-file-name name version))
  15379. (sha256
  15380. (base32 "08vsvqv3768bwb2y8mwxbw5wyqzzwqr7rd004r6gafdgf9p9mcx3"))))
  15381. (build-system asdf-build-system/sbcl)
  15382. (inputs
  15383. (list sbcl-bordeaux-threads sbcl-documentation-utils))
  15384. (home-page "https://shinmera.github.io/simple-inferiors/")
  15385. (synopsis "Common Lisp library to use inferior processes")
  15386. (description
  15387. "This is a library to allow easy handling of external processes, and
  15388. primarily to get their output. It handles proper copying of the standard and
  15389. error outputs of the process simultaneously, both in a sequential and parallel
  15390. fashion. It also features a lazy directory switching mechanism, to avoid
  15391. running into parallelism problems when having to change directory.")
  15392. (license license:zlib))))
  15393. (define-public ecl-simple-inferiors
  15394. (sbcl-package->ecl-package sbcl-simple-inferiors))
  15395. (define-public cl-simple-inferiors
  15396. (sbcl-package->cl-source-package sbcl-simple-inferiors))
  15397. (define-public sbcl-legit
  15398. (let ((commit "48d50a20d8dcbd941d119683463b7c8257ba6458"))
  15399. (package
  15400. (name "sbcl-legit")
  15401. (version (git-version "1.0.0" "1" commit))
  15402. (source
  15403. (origin
  15404. (method git-fetch)
  15405. (uri (git-reference
  15406. (url "https://github.com/Shinmera/legit")
  15407. (commit commit)))
  15408. (file-name (git-file-name name version))
  15409. (sha256
  15410. (base32 "181aqpj4zkfk1aavj5jw8rym6gw4ma3gd64z2h5fpryabgmwk236"))))
  15411. (build-system asdf-build-system/sbcl)
  15412. (inputs
  15413. (list sbcl-simple-inferiors sbcl-lambda-fiddle sbcl-cl-ppcre
  15414. sbcl-documentation-utils))
  15415. (home-page "https://shinmera.github.io/legit/")
  15416. (synopsis "Interface to the git binary")
  15417. (description
  15418. "This is an interface to the @code{git} binary to make controlling it
  15419. from within Common Lisp much easier. It might not ever reach full coverage of
  15420. all features given git's immense size, but features will be added as they are
  15421. needed. The low-level command API is fully mapped however.")
  15422. (license license:zlib))))
  15423. (define-public ecl-legit
  15424. (sbcl-package->ecl-package sbcl-legit))
  15425. (define-public cl-legit
  15426. (sbcl-package->cl-source-package sbcl-legit))
  15427. (define-public sbcl-flow
  15428. (let ((commit "6d925af009cdfe033650d7048197a5e6ee937d15")
  15429. (revision "1"))
  15430. (package
  15431. (name "sbcl-flow")
  15432. (version (git-version "1.0.0" revision commit))
  15433. (source
  15434. (origin
  15435. (method git-fetch)
  15436. (uri (git-reference
  15437. (url "https://github.com/Shinmera/flow")
  15438. (commit commit)))
  15439. (file-name (git-file-name "flow" version))
  15440. (sha256
  15441. (base32 "0ysw1kwiqlf8kzllhnz8v3q40dmvwf83fzq8bfkbmwy5hfjh3pxp"))))
  15442. (build-system asdf-build-system/sbcl)
  15443. (arguments
  15444. ;; FIXME: (Sharlatan-20210527T203118+0100): FLOW-VISUALIZER requires
  15445. ;; COMMONQT which is not packed yet and required tweaks with QT. Remove
  15446. ;; this when it's ready.
  15447. `(#:asd-files '("flow.asd")))
  15448. (inputs
  15449. `(("closer-mop" ,sbcl-closer-mop)
  15450. ("documentation-utils" ,sbcl-documentation-utils)))
  15451. (home-page "https://shinmera.github.io/flow/")
  15452. (synopsis "Tools for the representation of graphs and flowcharts")
  15453. (description
  15454. "FLOW is a flowchart graph library. Unlike other graphing libraries,
  15455. this one focuses on nodes in a graph having distinct @code{ports} through which
  15456. connections to other nodes are formed. This helps in many concrete scenarios
  15457. where it is important to distinguish not only which nodes are connected, but
  15458. also how they are connected to each other.
  15459. Particularly, a lot of data flow and exchange problems can be reduced to such
  15460. a @code{flowchart}. For example, an audio processing library may present its
  15461. pipeline as a flowchart of segments that communicate with each other through
  15462. audio sample buffers. Flow gives a convenient view onto this kind of problem,
  15463. and even allows the generic visualisation of graphs in this format.")
  15464. (license license:zlib))))
  15465. (define-public ecl-flow
  15466. (sbcl-package->ecl-package sbcl-flow))
  15467. (define-public cl-flow
  15468. (sbcl-package->cl-source-package sbcl-flow))
  15469. (define-public sbcl-cl-glfw3
  15470. (let ((commit "32c3f34d592d55ee7ce932ed85804c1a9c4158c6")
  15471. (revision "1"))
  15472. (package
  15473. (name "sbcl-cl-glfw3")
  15474. (version (git-version "0.0.0" revision commit))
  15475. (source
  15476. (origin
  15477. (method git-fetch)
  15478. (uri (git-reference
  15479. (url "https://github.com/AlexCharlton/cl-glfw3")
  15480. (commit commit)))
  15481. (file-name (git-file-name "cl-glfw3" version))
  15482. (sha256
  15483. (base32 "1wzr43nckdx4rlgxzhm1r4kfc264q969mc43y0js9ramh7l8gba5"))))
  15484. (build-system asdf-build-system/sbcl)
  15485. (arguments
  15486. `(#:phases
  15487. (modify-phases %standard-phases
  15488. (add-after 'unpack 'patch-glfw-lib-path
  15489. (lambda* (#:key inputs #:allow-other-keys)
  15490. (substitute* "glfw-bindings.lisp"
  15491. (("libglfw.so.3" _)
  15492. (search-input-file inputs "/lib/libglfw.so.3"))))))))
  15493. (inputs
  15494. `(("alexandria" ,sbcl-alexandria)
  15495. ("cffi" ,sbcl-cffi)
  15496. ("cl-opengl" ,sbcl-cl-opengl)
  15497. ("glfw" ,glfw)
  15498. ("trivial-main-thread" ,sbcl-trivial-main-thread)))
  15499. (home-page "https://github.com/AlexCharlton/cl-glfw3")
  15500. (synopsis "Common Lisp bindings to GLFW version 3.x")
  15501. (description
  15502. "This package provides a Common Lisp bindings to @code{glfw}, an OpenGL
  15503. application development library.")
  15504. (license license:bsd-2))))
  15505. (define-public ecl-cl-glfw3
  15506. (sbcl-package->ecl-package sbcl-cl-glfw3))
  15507. (define-public cl-glfw3
  15508. (sbcl-package->cl-source-package sbcl-cl-glfw3))
  15509. (define-public sbcl-chirp
  15510. (let ((commit "01c79fa41939688216d1f86d0766a687becb0654")
  15511. (revision "1"))
  15512. (package
  15513. (name "sbcl-chirp")
  15514. (version (git-version "0.2.0" revision commit))
  15515. (source
  15516. (origin
  15517. (method git-fetch)
  15518. (uri (git-reference
  15519. (url "https://github.com/Shinmera/chirp")
  15520. (commit commit)))
  15521. (file-name (git-file-name "chirp" version))
  15522. (sha256
  15523. (base32 "10xlz1vwdv3jv48kmpndpnrg6672m0r5vsjgm2pksfl8bc05j2m0"))))
  15524. (build-system asdf-build-system/sbcl)
  15525. (arguments
  15526. `(#:asd-systems '("chirp-core" "chirp-dexador" "chirp-drakma" "chirp")))
  15527. (inputs
  15528. `(("alexandria" ,sbcl-alexandria)
  15529. ("babel" ,sbcl-babel)
  15530. ("cl-base64" ,sbcl-cl-base64)
  15531. ("cl-ppcre" ,sbcl-cl-ppcre)
  15532. ("dexador" ,sbcl-dexador)
  15533. ("drakma" ,sbcl-drakma)
  15534. ("flexi-streams" ,sbcl-flexi-streams)
  15535. ("ironclad" ,sbcl-ironclad)
  15536. ("local-time" ,sbcl-local-time)
  15537. ("split-sequence" ,sbcl-split-sequence)
  15538. ("uuid" ,sbcl-uuid)
  15539. ("yason" ,sbcl-yason)))
  15540. (home-page "https://shinmera.github.io/chirp/")
  15541. (synopsis "Twitter client library for Common Lisp")
  15542. (description
  15543. "This package provides a Common Lisp Twitter client featuring full API
  15544. coverage.")
  15545. (license license:zlib))))
  15546. (define-public ecl-chirp
  15547. (sbcl-package->ecl-package sbcl-chirp))
  15548. (define-public cl-chirp
  15549. (sbcl-package->cl-source-package sbcl-chirp))
  15550. (define-public sbcl-cepl
  15551. (let ((commit "d1a10b6c8f4cedc07493bf06aef3a56c7b6f8d5b")
  15552. (revision "1"))
  15553. (package
  15554. (name "sbcl-cepl")
  15555. (version (git-version "0.0.0" revision commit))
  15556. (source
  15557. (origin
  15558. (method git-fetch)
  15559. (uri (git-reference
  15560. (url "https://github.com/cbaggers/cepl")
  15561. (commit commit)))
  15562. (file-name (git-file-name "cepl" version))
  15563. (sha256
  15564. (base32 "0izbw2advqm3wailj3dpq6zqfrfirwn14pw5qmqh8i71r51xwmm2"))))
  15565. (build-system asdf-build-system/sbcl)
  15566. (arguments
  15567. `(#:asd-files '("cepl.asd" "cepl.build.asd")))
  15568. (inputs
  15569. `(("alexandria" ,sbcl-alexandria)
  15570. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  15571. ("cffi" ,sbcl-cffi)
  15572. ("cl-opengl" ,sbcl-cl-opengl)
  15573. ("cl-ppcre" ,sbcl-cl-ppcre)
  15574. ("documentation-utils" ,sbcl-documentation-utils)
  15575. ("float-features" ,sbcl-float-features)
  15576. ("ieee-floats" ,sbcl-ieee-floats)
  15577. ("split-sequence" ,sbcl-split-sequence)
  15578. ("varjo" ,sbcl-varjo)))
  15579. (propagated-inputs
  15580. (list sbcl-quickproject))
  15581. (home-page "https://github.com/cbaggers/cepl")
  15582. (synopsis "Development playground to work with OpenGL")
  15583. (description
  15584. "CEPL (Code Evaluate Play Loop ) is a lispy and REPL-friendly Common Lisp
  15585. library for working with OpenGL.
  15586. Its definition of success is making the user feel that GPU programming has
  15587. always been part of the languages standard.
  15588. The usual approach to using CEPL is to start it at the beginning of your Lisp
  15589. session and leave it open for the duration of your work. You can then treat the
  15590. window it creates as just another output for your graphics, analogous to how
  15591. @code{*standard-output*} is treated for text.")
  15592. (license license:bsd-2))))
  15593. (define-public ecl-cepl
  15594. (sbcl-package->ecl-package sbcl-cepl))
  15595. (define-public cl-cepl
  15596. (sbcl-package->cl-source-package sbcl-cepl))
  15597. (define-public sbcl-stmx
  15598. ;; No release for years and recent commits contain fixes for revent SBCL versions.
  15599. (let ((commit "a7bb44082cd53ee968965adff03d4351750711a1")
  15600. (revision "1"))
  15601. (package
  15602. (name "sbcl-stmx")
  15603. (version (git-version "2.0.5" revision commit))
  15604. (source
  15605. (origin
  15606. (method git-fetch)
  15607. (uri (git-reference
  15608. (url "https://github.com/cosmos72/stmx/")
  15609. (commit commit)))
  15610. (file-name (git-file-name name version))
  15611. (sha256
  15612. (base32 "1hfmh4vj271jdilir97qs6nqbi5nmn5alyls0w3d3xxqwi6ffqjs"))))
  15613. (build-system asdf-build-system/sbcl)
  15614. (inputs
  15615. (list sbcl-alexandria sbcl-bordeaux-threads sbcl-log4cl
  15616. sbcl-closer-mop sbcl-trivial-garbage))
  15617. (home-page "https://stmx.org/")
  15618. (synopsis "High performance Transactional Memory for Common Lisp")
  15619. (description
  15620. "STMX is a high-performance implementation of composable Transactional
  15621. Memory, which is a concurrency control mechanism aimed at making concurrent
  15622. programming easier to write and understand. Instead of traditional lock-based
  15623. programming, one programs with atomic memory transactions, which can be
  15624. composed together to make larger atomic memory transactions.
  15625. A memory transaction gets committed if it returns normally, while it gets
  15626. rolled back if it signals an error (and the error is propagated to the
  15627. caller).
  15628. Finally, memory transactions can safely run in parallel in different threads,
  15629. are re-executed from the beginning in case of conflicts or if consistent reads
  15630. cannot be guaranteed, and their effects are not visible from other threads
  15631. until they commit.
  15632. Memory transactions give freedom from deadlocks, are immune to thread-safety
  15633. bugs and race conditions, provide automatic roll-back on failure, and aim at
  15634. resolving the tension between granularity and concurrency.")
  15635. (license license:llgpl))))
  15636. (define-public ecl-stmx
  15637. (sbcl-package->ecl-package sbcl-stmx))
  15638. (define-public cl-stmx
  15639. (sbcl-package->cl-source-package sbcl-stmx))
  15640. (define-public sbcl-binding-arrows
  15641. ;; Fork of sbcl-arrows that does not have a new tag.
  15642. (let ((commit "d19364ec8850880ed6e42078ccaa2ed9114dc83a")
  15643. (revision "1"))
  15644. (package
  15645. (name "sbcl-binding-arrows")
  15646. (version (git-version "1.0.0" revision commit))
  15647. (source
  15648. (origin
  15649. (method git-fetch)
  15650. (uri (git-reference
  15651. (url "https://github.com/phoe/binding-arrows")
  15652. (commit commit)))
  15653. (file-name (git-file-name name version))
  15654. (sha256
  15655. (base32 "0hqikgzic7kjq2n1d924yldfm30qz67cmsk6gghi9cbmxkwdlwp8"))))
  15656. (build-system asdf-build-system/sbcl)
  15657. (native-inputs
  15658. (list sbcl-hu.dwim.stefil))
  15659. (home-page "https://github.com/phoe/binding-arrows")
  15660. (synopsis "Threading macros based on binding anonymous variables")
  15661. (description
  15662. "This system implements binding threading macros -- a kind of threading
  15663. macros with different semantics than classical, Clojure core threading macros
  15664. or their extension, swiss-arrows. Two Common Lisp implementations of those are
  15665. @code{arrows} and @code{arrow-macros}.
  15666. This system is a fork of @code{arrows} with changes in semantics that make it
  15667. impossible to merge back upstream.")
  15668. (license license:expat))))
  15669. (define-public ecl-binding-arrows
  15670. (sbcl-package->ecl-package sbcl-binding-arrows))
  15671. (define-public cl-binding-arrows
  15672. (sbcl-package->cl-source-package sbcl-binding-arrows))
  15673. (define-public sbcl-atomics
  15674. ;; No release in years.
  15675. (let ((commit "9ee0bdebcd2bb9b242671a75460db13fbf45454c")
  15676. (revision "1"))
  15677. (package
  15678. (name "sbcl-atomics")
  15679. (version (git-version "1.0.0" revision commit))
  15680. (source
  15681. (origin
  15682. (method git-fetch)
  15683. (uri (git-reference
  15684. (url "https://github.com/Shinmera/atomics")
  15685. (commit commit)))
  15686. (file-name (git-file-name "atomics" version))
  15687. (sha256
  15688. (base32 "0mp5jdqq0aamdhgnvw149cqqi3zg7dkkibp25qi4rafw1fnpd40z"))))
  15689. (build-system asdf-build-system/sbcl)
  15690. (inputs
  15691. (list sbcl-documentation-utils))
  15692. (native-inputs
  15693. (list sbcl-parachute))
  15694. (home-page "https://shinmera.github.io/atomics/")
  15695. (synopsis "Common Lisp portability layer for atomic operations")
  15696. (description
  15697. "This is a library for access to atomic operation primitives such as
  15698. compare-and-swap. It aims to be a rather thin layer over what the
  15699. implementations offer.")
  15700. (license license:zlib))))
  15701. (define-public ecl-atomics
  15702. (sbcl-package->ecl-package sbcl-atomics))
  15703. (define-public cl-atomics
  15704. (sbcl-package->cl-source-package sbcl-atomics))
  15705. (define-public sbcl-cl-murmurhash
  15706. ;; No release.
  15707. (let ((commit "5433f5e95f1cce63a81259a471150834c6a59364")
  15708. (revision "1"))
  15709. (package
  15710. (name "sbcl-cl-murmurhash")
  15711. (version (git-version "0.0.0" revision commit))
  15712. (home-page "https://github.com/ruricolist/cl-murmurhash/")
  15713. (source
  15714. (origin
  15715. (method git-fetch)
  15716. (uri (git-reference
  15717. (url home-page)
  15718. (commit commit)))
  15719. (file-name (git-file-name name version))
  15720. (sha256
  15721. (base32
  15722. "0251r0mpjm0y3qsm4lm7ncvrkxvgwc53spdm1p2mpayhvkkqqsws"))))
  15723. (build-system asdf-build-system/sbcl)
  15724. (inputs
  15725. (list sbcl-babel))
  15726. (native-inputs
  15727. (list sbcl-fiveam))
  15728. (synopsis "32-bit version of Murmurhash3 for Common Lisp")
  15729. (description
  15730. "This Common Lisp package offers an implementation of the 32-bit
  15731. variant of MurmurHash3 (@url{https://github.com/aappleby/smhasher}), a fast
  15732. non-crytographic hashing algorithm.")
  15733. (license license:expat))))
  15734. (define-public ecl-cl-murmurhash
  15735. (sbcl-package->ecl-package sbcl-cl-murmurhash))
  15736. (define-public cl-murmurhash
  15737. (sbcl-package->cl-source-package sbcl-cl-murmurhash))
  15738. (define-public sbcl-cl-hamt
  15739. ;; No release
  15740. (let ((commit "7a99eaaca1f952029def9ad5a2b80a612a712208"))
  15741. (package
  15742. (name "sbcl-cl-hamt")
  15743. (version (git-version "0.0.0" "1" commit))
  15744. (source
  15745. (origin
  15746. (method git-fetch)
  15747. (uri (git-reference
  15748. (url "https://github.com/danshapero/cl-hamt/")
  15749. (commit commit)))
  15750. (file-name (git-file-name name version))
  15751. (sha256
  15752. (base32 "1ycbd73ykfj5j9sdhlzamyv18qbjj6xqf7fhm4fa0nsyr6sr3rf5"))))
  15753. (build-system asdf-build-system/sbcl)
  15754. (inputs
  15755. (list sbcl-cl-murmurhash))
  15756. (native-inputs
  15757. (list sbcl-fiveam))
  15758. (home-page "https://github.com/danshapero/cl-hamt")
  15759. (synopsis "Dictionary & set data structure using hash array-mapped tries")
  15760. (description
  15761. "This library provides purely functional dictionaries and sets in
  15762. Common Lisp based on the hash array-mapped trie data structure.")
  15763. (license license:bsd-3))))
  15764. (define-public ecl-cl-hamt
  15765. (sbcl-package->ecl-package sbcl-cl-hamt))
  15766. (define-public cl-hamt
  15767. (sbcl-package->cl-source-package sbcl-cl-hamt))
  15768. (define-public sbcl-cl-gserver
  15769. (package
  15770. (name "sbcl-cl-gserver")
  15771. (version "1.8.0")
  15772. (source
  15773. (origin
  15774. (method git-fetch)
  15775. (uri (git-reference
  15776. (url "https://github.com/mdbergmann/cl-gserver")
  15777. ;; The "1.8.0" tag must have been moved from
  15778. ;; c83d92a66102faa514b546029a9bd2078b95dc0f to
  15779. ;; 90832f02f0556463e332cd055c3c1be58f323aea, 22 commits later!
  15780. (commit "c83d92a66102faa514b546029a9bd2078b95dc0f")))
  15781. (file-name (git-file-name "cl-gserver" version))
  15782. (sha256
  15783. (base32 "1bfz7z8v417dvsp1jz76ir3ihcs8g7zis2d56xx1dpzqzjd95g7z"))))
  15784. (build-system asdf-build-system/sbcl)
  15785. (inputs
  15786. (list sbcl-alexandria
  15787. sbcl-bordeaux-threads
  15788. sbcl-lparallel
  15789. sbcl-cl-speedy-queue
  15790. sbcl-log4cl
  15791. sbcl-cl-str
  15792. sbcl-blackbird
  15793. sbcl-cl-hamt
  15794. sbcl-binding-arrows
  15795. sbcl-atomics))
  15796. (native-inputs
  15797. (list sbcl-fiveam sbcl-cl-mock))
  15798. (home-page "https://mdbergmann.github.io/cl-gserver/index.html")
  15799. (synopsis "Actor framework for easy access to state and async operations")
  15800. (description
  15801. "@code{cl-gserver} is a 'message passing' library / framework with actors
  15802. similar to Erlang or Akka. It supports creating reactive systems for parallel
  15803. computing and event based message handling.")
  15804. (license license:agpl3)))
  15805. (define-public ecl-cl-gserver
  15806. (sbcl-package->ecl-package sbcl-cl-gserver))
  15807. (define-public cl-gserver
  15808. (sbcl-package->cl-source-package sbcl-cl-gserver))
  15809. (define-public sbcl-assoc-utils
  15810. (let ((commit "74af16a3c0f10ad35e406167de02984744fc7854")
  15811. (revision "1"))
  15812. (package
  15813. (name "sbcl-assoc-utils")
  15814. (version (git-version "0.1" revision commit))
  15815. (source
  15816. (origin
  15817. (method git-fetch)
  15818. (uri (git-reference
  15819. (url "https://github.com/fukamachi/assoc-utils")
  15820. (commit commit)))
  15821. (file-name (git-file-name "cl-assoc-utils" version))
  15822. (sha256
  15823. (base32 "1yac1v7zmdxj0p6rvwrrhyqvy7yjfhmqbchkwqhhr89gpjvvaick"))))
  15824. (build-system asdf-build-system/sbcl)
  15825. (arguments
  15826. '(#:asd-systems '("assoc-utils-test" "assoc-utils")))
  15827. (native-inputs
  15828. (list sbcl-prove))
  15829. (home-page "https://github.com/fukamachi/assoc-utils")
  15830. (synopsis "Utilities for manipulating association lists in Common Lisp")
  15831. (description
  15832. "@code{assoc-utils} provides utilities for manipulating association
  15833. lists in Common Lisp.")
  15834. (license license:public-domain))))
  15835. (define-public cl-assoc-utils
  15836. (sbcl-package->cl-source-package sbcl-assoc-utils))
  15837. (define-public ecl-assoc-utils
  15838. (sbcl-package->ecl-package sbcl-assoc-utils))
  15839. (define-public sbcl-let-over-lambda
  15840. (let ((commit "481b2e3ab4646186451dfdd2062113203287d520")
  15841. (revision "1"))
  15842. (package
  15843. (name "sbcl-let-over-lambda")
  15844. (version (git-version "1.0.1" revision commit))
  15845. (source
  15846. (origin
  15847. (method git-fetch)
  15848. (uri (git-reference
  15849. (url "https://github.com/thephoeron/let-over-lambda")
  15850. (commit commit)))
  15851. (file-name (git-file-name "cl-let-over-lambda" version))
  15852. (sha256
  15853. (base32 "114p781lwi9lrbzg27dnkymz9m4cvm1k430j7qsykwd0b58d8qbk"))))
  15854. (build-system asdf-build-system/sbcl)
  15855. (arguments
  15856. ;; All test cases pass, but tests successfully fail at the end:
  15857. ;;
  15858. ;; Summary:
  15859. ;; All 1 file passed.
  15860. ;; Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread
  15861. ;; #<SB-THREAD:THREAD "main thread" RUNNING {1001860103}>:
  15862. ;; Component LET-OVER-LAMBDA-ASD::LET-OVER-LAMBDA-TEST not found,
  15863. ;; required by #<SYSTEM "let-over-lambda">
  15864. `(#:tests? #f))
  15865. (inputs
  15866. `(("alexandria" ,sbcl-alexandria)
  15867. ("cl-ppcre" ,sbcl-cl-ppcre)
  15868. ("named-readtables" ,sbcl-named-readtables)))
  15869. (native-inputs
  15870. (list sbcl-prove))
  15871. (home-page "https://github.com/thephoeron/let-over-lambda")
  15872. (synopsis "Macros from Let Over Lambda")
  15873. (description
  15874. "This package provides Doug Hoyte's \"Production\" version of macros
  15875. from the Let Over Lambda book, including community updates.")
  15876. (license license:bsd-3))))
  15877. (define-public cl-let-over-lambda
  15878. (sbcl-package->cl-source-package sbcl-let-over-lambda))
  15879. (define-public ecl-let-over-lambda
  15880. (sbcl-package->ecl-package sbcl-let-over-lambda))
  15881. (define-public sbcl-flute
  15882. (let ((commit "90ebcd6e82f637f49b6de7d625ccc51ec4c92900")
  15883. (revision "1"))
  15884. (package
  15885. (name "sbcl-flute")
  15886. (version (git-version "0.2-dev" revision commit))
  15887. (source
  15888. (origin
  15889. (method git-fetch)
  15890. (uri (git-reference
  15891. (url "https://github.com/ailisp/flute")
  15892. (commit commit)))
  15893. (file-name (git-file-name "cl-flute" version))
  15894. (sha256
  15895. (base32 "0q8jhp040cvpppyn820mm6a550yfxyr1lar298x13c42mm807f4f"))))
  15896. (build-system asdf-build-system/sbcl)
  15897. (inputs
  15898. (list sbcl-assoc-utils sbcl-let-over-lambda))
  15899. (native-inputs
  15900. (list sbcl-fiveam))
  15901. (home-page "https://github.com/ailisp/flute")
  15902. (synopsis "HTML5 generation library in Common Lisp")
  15903. (description
  15904. "Flute is an easily composable HTML5 generation library in Common
  15905. Lisp.")
  15906. (license license:expat))))
  15907. (define-public cl-flute
  15908. (sbcl-package->cl-source-package sbcl-flute))
  15909. (define-public ecl-flute
  15910. (sbcl-package->ecl-package sbcl-flute))
  15911. (define-public sbcl-cl-posix-mqueue
  15912. (let ((commit "8977370c7206d1f62bd1be80f4254af40654b83f")
  15913. (revision "1"))
  15914. (package
  15915. (name "sbcl-cl-posix-mqueue")
  15916. (version (git-version "0.1.2" revision commit))
  15917. (source
  15918. (origin
  15919. (method git-fetch)
  15920. (uri (git-reference
  15921. (url "https://github.com/xFA25E/cl-posix-mqueue")
  15922. (commit commit)))
  15923. (file-name (git-file-name "cl-posix-mqueue" version))
  15924. (sha256
  15925. (base32 "04519rg8vc782z097dzlb8nx0skab2fy2zd0m60r6mz2nw8xdvh6"))))
  15926. (build-system asdf-build-system/sbcl)
  15927. (arguments
  15928. `(#:test-asd-file "cl-posix-mqueue-tests.asd"
  15929. #:phases
  15930. (modify-phases %standard-phases
  15931. (add-after 'unpack 'patch-librt-path
  15932. (lambda* (#:key inputs #:allow-other-keys)
  15933. (substitute* "src/spec.lisp"
  15934. (("librt.so" all)
  15935. (string-append (assoc-ref inputs "glibc") "/lib/" all))))))))
  15936. (native-inputs
  15937. `(("cl-ppcre" ,sbcl-cl-ppcre)
  15938. ("rove" ,sbcl-rove)))
  15939. (inputs
  15940. `(("alexandria" ,sbcl-alexandria)
  15941. ("babel" ,sbcl-babel)
  15942. ("cffi" ,sbcl-cffi)
  15943. ("glibc" ,glibc)
  15944. ("local-time" ,sbcl-local-time)))
  15945. (home-page "https://github.com/xFA25E/cl-posix-mqueue")
  15946. (synopsis "Common Lisp binding to POSIX mqueue")
  15947. (description
  15948. "This package provides Common Lisp bindings to POSIX message queue, an
  15949. @acronym{IPC, Inter-Process Communication} method that is easy to use and quick
  15950. to setup.")
  15951. (license license:gpl3))))
  15952. (define-public ecl-cl-posix-mqueue
  15953. (sbcl-package->ecl-package sbcl-cl-posix-mqueue))
  15954. (define-public cl-posix-mqueue
  15955. (sbcl-package->cl-source-package sbcl-cl-posix-mqueue))
  15956. (define-public sbcl-sdl2
  15957. (let ((commit "bb2aa2a41cf799e3bb1ddf50de41fe389c6db668")
  15958. (revision "1"))
  15959. (package
  15960. (name "sbcl-sdl2")
  15961. (version (git-version "0.0.0" revision commit))
  15962. (source
  15963. (origin
  15964. (method git-fetch)
  15965. (uri (git-reference
  15966. (url "https://github.com/lispgames/cl-sdl2")
  15967. (commit commit)))
  15968. (file-name (git-file-name "cl-sdl2" version))
  15969. (sha256
  15970. (base32 "1a4904310z2wwq80grnlixmyz30452vgd4lh74y105j2yrr43z97"))))
  15971. (build-system asdf-build-system/sbcl)
  15972. (arguments
  15973. `(#:phases
  15974. (modify-phases %standard-phases
  15975. (add-after 'unpack 'fix-paths
  15976. (lambda* (#:key inputs #:allow-other-keys)
  15977. (substitute* "src/library.lisp"
  15978. (("libSDL2-2.0.so.0" all)
  15979. (string-append (assoc-ref inputs "libsdl2") "/lib/" all)))
  15980. #t)))))
  15981. (inputs
  15982. `(("alexandria" ,sbcl-alexandria)
  15983. ("cl-autowrap" ,sbcl-cl-autowrap)
  15984. ("cl-ppcre" ,sbcl-cl-ppcre)
  15985. ("libsdl2" ,sdl2)
  15986. ("trivial-channels" ,sbcl-trivial-channels)
  15987. ("trivial-features" ,sbcl-trivial-features)))
  15988. (home-page "https://github.com/lispgames/cl-sdl2")
  15989. (synopsis "Common Lisp bindings for SDL2 using C2FFI")
  15990. (description
  15991. "This package provides a Common Lisp wrapper system for the SDL 2.0
  15992. C Library.")
  15993. (license license:expat))))
  15994. (define-public ecl-sdl2
  15995. (sbcl-package->ecl-package sbcl-sdl2))
  15996. (define-public cl-sdl2
  15997. (sbcl-package->cl-source-package sbcl-sdl2))
  15998. (define-public sbcl-cl-gamepad
  15999. (let ((commit "7e12137927b42db064ffbf9ea34bd4790ad4bb33")
  16000. (revision "1"))
  16001. (package
  16002. (name "sbcl-cl-gamepad")
  16003. (version (git-version "3.0.0" revision commit))
  16004. (source
  16005. (origin
  16006. (method git-fetch)
  16007. (uri (git-reference
  16008. (url "https://github.com/Shirakumo/cl-gamepad")
  16009. (commit commit)))
  16010. (file-name (git-file-name "cl-gamepad" version))
  16011. (sha256
  16012. (base32 "1gzx590i7s81qmramnjvfzrrq5yppas8yxqq1jl3yzqhhjwjfvkd"))))
  16013. (build-system asdf-build-system/sbcl)
  16014. (arguments
  16015. `(#:phases
  16016. (modify-phases %standard-phases
  16017. (add-after 'unpack 'patch-evdev-lib-path
  16018. (lambda* (#:key inputs #:allow-other-keys)
  16019. (substitute* "evdev-cffi.lisp"
  16020. (("libevdev.so" all)
  16021. (string-append (assoc-ref inputs "libevdev")
  16022. "/lib/" all)))))
  16023. ;; Here we use a custom build phase to work around a compilation bug.
  16024. ;; Using 'asdf:compile-system' fails, but using 'asdf:load-system'
  16025. ;; succeeds (and also compiles the system).
  16026. ;; See https://github.com/Shirakumo/cl-gamepad/issues/8
  16027. (replace 'build
  16028. (lambda* (#:key outputs #:allow-other-keys)
  16029. (let* ((out (assoc-ref outputs "out"))
  16030. (source-path (string-append out
  16031. "/share/common-lisp/"
  16032. (%lisp-type)))
  16033. (translations `((,source-path
  16034. :**/ :*.*.*)
  16035. (,(string-append out
  16036. "/lib/common-lisp/"
  16037. (%lisp-type))
  16038. :**/ :*.*.*))))
  16039. (setenv "ASDF_OUTPUT_TRANSLATIONS"
  16040. (format #f "~S" `(:output-translations
  16041. ,translations
  16042. :inherit-configuration)))
  16043. (setenv "HOME" (assoc-ref outputs "out"))
  16044. (with-directory-excursion (string-append source-path
  16045. "/cl-gamepad")
  16046. (invoke (%lisp-type)
  16047. "--eval" "(require :asdf)"
  16048. "--eval" "(asdf:load-asd (truename \"cl-gamepad.asd\"))"
  16049. "--eval" "(asdf:load-system :cl-gamepad)"
  16050. "--eval" "(quit)"))))))))
  16051. (inputs
  16052. `(("cffi" ,sbcl-cffi)
  16053. ("documentation-utils" ,sbcl-documentation-utils)
  16054. ("libevdev" ,libevdev)
  16055. ("trivial-features" ,sbcl-trivial-features)))
  16056. (home-page "https://shirakumo.github.io/cl-gamepad/")
  16057. (synopsis "Library for access to gamepads and joystick input devices")
  16058. (description
  16059. "This is a library to provide cross-platform access to gamepads,
  16060. joysticks, and other such HID devices.")
  16061. (license license:zlib))))
  16062. (define-public ecl-cl-gamepad
  16063. (sbcl-package->ecl-package sbcl-cl-gamepad))
  16064. (define-public cl-gamepad
  16065. (sbcl-package->cl-source-package sbcl-cl-gamepad))
  16066. (define-public sbcl-trial
  16067. (let ((commit "ba178cac3a5528c570c7e8dad66c58cc770db53a")
  16068. (revision "1"))
  16069. (package
  16070. (name "sbcl-trial")
  16071. (version (git-version "1.2.0" revision commit))
  16072. (source
  16073. (origin
  16074. (method git-fetch)
  16075. (uri (git-reference
  16076. (url "https://github.com/Shirakumo/trial")
  16077. (commit commit)))
  16078. (file-name (git-file-name "trial" version))
  16079. (sha256
  16080. (base32 "1vpv9nrpq93fz1c5cyi1hazaaz9ijbrf1l7zwp7gammndr5v028r"))))
  16081. (build-system asdf-build-system/sbcl)
  16082. (native-inputs
  16083. (list sbcl-trivial-features))
  16084. (inputs
  16085. (list sbcl-alexandria
  16086. sbcl-3d-matrices
  16087. sbcl-3d-vectors
  16088. sbcl-bordeaux-threads
  16089. sbcl-cl-gamepad
  16090. sbcl-cl-jpeg
  16091. sbcl-cl-opengl
  16092. sbcl-cl-ppcre
  16093. sbcl-cl-tga
  16094. sbcl-closer-mop
  16095. sbcl-deploy
  16096. sbcl-fast-io
  16097. sbcl-flare
  16098. sbcl-float-features
  16099. sbcl-flow
  16100. sbcl-for
  16101. sbcl-form-fiddle
  16102. sbcl-glsl-toolkit
  16103. sbcl-ieee-floats
  16104. sbcl-jsown
  16105. sbcl-lambda-fiddle
  16106. sbcl-lquery
  16107. sbcl-messagebox
  16108. sbcl-mmap
  16109. sbcl-pathname-utils
  16110. sbcl-pngload
  16111. sbcl-retrospectiff
  16112. sbcl-static-vectors
  16113. sbcl-terrable
  16114. sbcl-trivial-garbage
  16115. sbcl-trivial-indent
  16116. sbcl-verbose
  16117. sbcl-zpng))
  16118. (home-page "https://github.com/Shirakumo/trial")
  16119. (synopsis "Common Lisp game engine")
  16120. (description
  16121. "Trial is a game engine written in Common Lisp. Unlike many other
  16122. engines, it is meant to be more of a loose connection of components that can be
  16123. fit together as required by any particular game.")
  16124. (license license:zlib))))
  16125. (define-public ecl-trial
  16126. (sbcl-package->ecl-package sbcl-trial))
  16127. (define-public cl-trial
  16128. (sbcl-package->cl-source-package sbcl-trial))
  16129. (define-public sbcl-cl-liballegro
  16130. (let ((commit "49f632ce97fc4f835bf5d450588793234b980a64")
  16131. (revision "1"))
  16132. (package
  16133. (name "sbcl-cl-liballegro")
  16134. (version (git-version "0.2.15" revision commit))
  16135. (source
  16136. (origin
  16137. (method git-fetch)
  16138. (uri (git-reference
  16139. (url "https://github.com/resttime/cl-liballegro")
  16140. (commit commit)))
  16141. (file-name (git-file-name name version))
  16142. (sha256
  16143. (base32 "0brbr7i342s0gadlnzd3a61w2b9ihhx60l19ararnc2asvyhmz7x"))))
  16144. (build-system asdf-build-system/sbcl)
  16145. (arguments
  16146. `(#:phases
  16147. (modify-phases %standard-phases
  16148. (add-after 'unpack 'patch-allegro-lib-path
  16149. (lambda* (#:key inputs #:allow-other-keys)
  16150. (let ((allegro-lib-path (string-append
  16151. (assoc-ref inputs "allegro") "/lib/")))
  16152. (substitute* "src/library.lisp"
  16153. (("lib \".so\"" all)
  16154. (string-append "\"" allegro-lib-path "\"" " lib \".so\"")))))))))
  16155. (inputs
  16156. `(("allegro" ,allegro)
  16157. ("cffi" ,sbcl-cffi)
  16158. ("float-features" ,sbcl-float-features)
  16159. ("trivial-garbage" ,sbcl-trivial-garbage)
  16160. ("trivial-main-thread" ,sbcl-trivial-main-thread)))
  16161. (home-page "https://github.com/resttime/cl-liballegro")
  16162. (synopsis "Allegro 5 game programming library bindings for Common Lisp")
  16163. (description
  16164. "This package provides CFFI bindings and interface to Allegro 5 game
  16165. developing library for Common Lisp.")
  16166. (license license:zlib))))
  16167. (define-public ecl-cl-liballegro
  16168. (sbcl-package->ecl-package sbcl-cl-liballegro))
  16169. (define-public cl-liballegro
  16170. (sbcl-package->cl-source-package sbcl-cl-liballegro))
  16171. (define-public sbcl-alloy
  16172. (let ((commit "e86e22c2887836ec31cd97e039f0bca5248d8f1c")
  16173. (revision "1"))
  16174. (package
  16175. (name "sbcl-alloy")
  16176. (version (git-version "0.0.0" revision commit))
  16177. (source
  16178. (origin
  16179. (method git-fetch)
  16180. (uri (git-reference
  16181. (url "https://github.com/Shirakumo/alloy")
  16182. (commit commit)))
  16183. (file-name (git-file-name "alloy" version))
  16184. (sha256
  16185. (base32 "1jsqjr6sf86hcdvnjp4gd10qv0r7kfkr9hmda85irb5lha4q9n7w"))))
  16186. (build-system asdf-build-system/sbcl)
  16187. (native-inputs
  16188. (list sbcl-alexandria sbcl-parachute))
  16189. (inputs
  16190. (list sbcl-array-utils sbcl-closer-mop sbcl-documentation-utils))
  16191. (home-page "https://shirakumo.github.io/alloy/")
  16192. (synopsis
  16193. "Common Lisp user interface protocol and toolkit implementation")
  16194. (description
  16195. "Alloy is a user interface toolkit. It is defined through a set of
  16196. protocols that allow for a clear interface, as well as a standardised way to
  16197. integrate Alloy into a target backend.")
  16198. (license license:zlib))))
  16199. (define-public ecl-alloy
  16200. (sbcl-package->ecl-package sbcl-alloy))
  16201. (define-public cl-alloy
  16202. (sbcl-package->cl-source-package sbcl-alloy))
  16203. (define-public sbcl-org-sampler
  16204. (let ((commit "ee135a417750e5b1d810bb9574eb85223cb3038a")
  16205. (revision "1"))
  16206. (package
  16207. (name "sbcl-org-sampler")
  16208. (version (git-version "0.2.1" revision commit))
  16209. (source
  16210. (origin
  16211. (method git-fetch)
  16212. (uri (git-reference
  16213. (url "https://github.com/jphmrst/cl-org-sampler")
  16214. (commit commit)))
  16215. (file-name (git-file-name "cl-org-sampler" version))
  16216. (sha256
  16217. (base32 "1dg029in14928qfxvfshyxmdwhzskzhxx3na0zy98ybx69b21qla"))))
  16218. (build-system asdf-build-system/sbcl)
  16219. (inputs
  16220. (list sbcl-iterate))
  16221. (home-page "https://github.com/jphmrst/cl-org-sampler")
  16222. (synopsis "Extracting Common Lisp docstrings as Emacs Org-mode documents")
  16223. (description
  16224. "ORG-SAMPLER allows using Lisp docstrings and reflection to make org-mode
  16225. text for inclusion into a larger document.")
  16226. (license license:llgpl))))
  16227. (define-public ecl-org-sampler
  16228. (sbcl-package->ecl-package sbcl-org-sampler))
  16229. (define-public cl-org-sampler
  16230. (sbcl-package->cl-source-package sbcl-org-sampler))
  16231. (define-public sbcl-acl-compat
  16232. ;; There does not seem to be proper releases.
  16233. (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5"))
  16234. (package
  16235. (name "sbcl-acl-compat")
  16236. (version (git-version "0.1.1" "1" commit))
  16237. (source
  16238. (origin
  16239. (method git-fetch)
  16240. (uri (git-reference
  16241. (url "git://git.code.sf.net/p/portableaserve/git")
  16242. (commit commit)))
  16243. (file-name (git-file-name "acl-compat" version))
  16244. (sha256
  16245. (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))))
  16246. (build-system asdf-build-system/sbcl)
  16247. (arguments
  16248. `(#:phases
  16249. (modify-phases %standard-phases
  16250. (add-after 'unpack 'cd-acl-compat
  16251. (lambda _
  16252. (chdir "acl-compat")
  16253. #t)))))
  16254. (inputs
  16255. `(("puri" ,sbcl-puri)
  16256. ("cl-ppcre" ,sbcl-cl-ppcre)
  16257. ("ironclad" ,sbcl-ironclad)
  16258. ("cl-fad" ,sbcl-cl-fad)))
  16259. (home-page "https://sourceforge.net/projects/portableaserve/")
  16260. (synopsis "AllegroServe, a web server written in Common Lisp")
  16261. (description
  16262. "The server part of AllegroServe can be used either as a standalone web
  16263. server or a module loaded into an application to provide a user interface to
  16264. the application. AllegroServe's proxy ability allows it to run on the gateway
  16265. machine between some internal network and the Internet. AllegroServe's client
  16266. functions allow Lisp programs to explore the web.")
  16267. (license license:llgpl))))
  16268. (define-public cl-acl-compat
  16269. (sbcl-package->cl-source-package sbcl-acl-compat))
  16270. (define-public sbcl-aserve
  16271. ;; There does not seem to be proper releases.
  16272. (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5")
  16273. (revision "2"))
  16274. (package
  16275. (name "sbcl-aserve")
  16276. (version (git-version "1.2.50" revision commit))
  16277. (source
  16278. (origin
  16279. (method git-fetch)
  16280. (uri (git-reference
  16281. ;; https://github.com/franzinc/aserve/ seems to be incompatible
  16282. ;; with SBCL, etc.
  16283. (url "git://git.code.sf.net/p/portableaserve/git")
  16284. (commit commit)))
  16285. (file-name (git-file-name "aserve" version))
  16286. (sha256
  16287. (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))
  16288. (patches (search-patches
  16289. ;; Add HTML5 elements to htmlgen.
  16290. ;; Adapted from https://github.com/franzinc/aserve/ commits:
  16291. ;; * e47bd763: "rfe12668: add HTML 5 elements to htmlgen"
  16292. ;; * 7371ce59: "fix bugs in rfe12668 implementation"
  16293. "sbcl-aserve-add-HTML-5-elements.patch"
  16294. "sbcl-aserve-fix-rfe12668.patch"))))
  16295. (build-system asdf-build-system/sbcl)
  16296. (arguments
  16297. `(#:phases
  16298. (modify-phases %standard-phases
  16299. (add-after 'unpack 'cd-aserve
  16300. (lambda _
  16301. (chdir "aserve")
  16302. #t))
  16303. (add-after 'cd-aserve 'fix-asd
  16304. (lambda _
  16305. (substitute* "aserve.asd"
  16306. ((" :force t") ""))
  16307. #t))
  16308. (add-after 'cd-aserve 'fix-tests
  16309. (lambda _
  16310. (substitute* "test/t-aserve.cl"
  16311. (("\\(asdf:oos 'asdf:load-op :ptester\\)") ""))
  16312. #t)))))
  16313. (inputs
  16314. `(("acl-compat" ,sbcl-acl-compat)))
  16315. (home-page
  16316. "https://franz.com/support/documentation/current/doc/aserve/aserve.html")
  16317. (synopsis "AllegroServe, a web server written in Common Lisp")
  16318. (description
  16319. "The server part of AllegroServe can be used either as a standalone web
  16320. server or a module loaded into an application to provide a user interface to
  16321. the application. AllegroServe's proxy ability allows it to run on the gateway
  16322. machine between some internal network and the Internet. AllegroServe's client
  16323. functions allow Lisp programs to explore the web.")
  16324. (license license:llgpl))))
  16325. (define-public cl-aserve
  16326. (sbcl-package->cl-source-package sbcl-aserve))
  16327. (define-public sbcl-yxorp
  16328. (let ((commit "c306898a467995e123a22316c9b79fcac442415b")
  16329. (revision "4"))
  16330. (package
  16331. (name "sbcl-yxorp")
  16332. (version (git-version "0.4" revision commit))
  16333. (source
  16334. (origin
  16335. (method git-fetch)
  16336. (uri (git-reference
  16337. (url "https://github.com/charJe/cl-yxorp")
  16338. (commit commit)))
  16339. (file-name (git-file-name "cl-yxorp" version))
  16340. (sha256
  16341. (base32 "0ll1s9w29yhhgqssgiw58fcapw4n040gkvpz4sxwv3q2v60rbidj"))))
  16342. (build-system asdf-build-system/sbcl)
  16343. (inputs
  16344. (list sbcl-chipz
  16345. sbcl-chunga
  16346. sbcl-cl+ssl
  16347. sbcl-binding-arrows
  16348. sbcl-cl-str
  16349. sbcl-usocket
  16350. sbcl-flexi-streams
  16351. sbcl-rutils
  16352. sbcl-salza2
  16353. sbcl-trivial-garbage))
  16354. (home-page "https://github.com/charje/cl-yxorp")
  16355. (synopsis
  16356. "Reverse proxy server written in and configurable in Common Lisp")
  16357. (description
  16358. "This is a reverse proxy server written in and configurable in
  16359. Common Lisp. It supports WebSocket, HTTP, HTTPS, HTTP to HTTPS
  16360. redirecting, port and host forwarding configuration using a real programming
  16361. language, HTTP header and body manipulation (also using a real programming
  16362. language).")
  16363. (license license:agpl3))))
  16364. (define-public ecl-yxorp
  16365. ;; Note that due to a bug in ECL this package does not build.
  16366. ;; The bug has already been fixed on the development branch,
  16367. ;; so this package will work work in the version after 21.2.1.
  16368. (sbcl-package->ecl-package sbcl-yxorp))
  16369. (define-public cl-yxorp
  16370. (sbcl-package->cl-source-package sbcl-yxorp))
  16371. (define-public cl-yxorp-cli
  16372. (package
  16373. (inherit sbcl-yxorp)
  16374. (name "cl-yxorp-cli")
  16375. (build-system gnu-build-system)
  16376. (arguments
  16377. '(#:tests? #f
  16378. #:strip-binaries? #f
  16379. #:phases
  16380. (modify-phases %standard-phases
  16381. (delete 'configure)
  16382. (add-after 'unpack 'set-home
  16383. (lambda _
  16384. (setenv "HOME" "/tmp")))
  16385. (replace 'build
  16386. (lambda _
  16387. (invoke
  16388. "sbcl" "--noinform"
  16389. "--non-interactive"
  16390. "--no-userinit"
  16391. "--eval" "(require :asdf)"
  16392. "--eval" "(pushnew (uiop:getcwd) asdf:*central-registry*)"
  16393. "--load" "build.lisp")))
  16394. (replace 'install
  16395. (lambda* (#:key outputs #:allow-other-keys)
  16396. (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
  16397. (mkdir-p bin)
  16398. (install-file "cl-yxorp" bin)))))))
  16399. (inputs (cons (list "sbcl" sbcl) (package-inputs sbcl-yxorp)))))
  16400. (define-public sbcl-rss
  16401. ;; No release.
  16402. (let ((commit "51d0145e91b86327ae5c36364f9c3048052e7a58"))
  16403. (package
  16404. (name "sbcl-rss")
  16405. (version (git-version "0.9.1.1" "2" commit))
  16406. (source
  16407. (origin
  16408. (method git-fetch)
  16409. (uri (git-reference
  16410. (url "http://git.kpe.io/cl-rss.git")
  16411. (commit commit)))
  16412. (file-name (git-file-name name version))
  16413. (sha256
  16414. (base32 "0wv3j13fj73gigriw5r9vi920hz05ld7zllsvbxdxvmyfy9k1kly"))))
  16415. (build-system asdf-build-system/sbcl)
  16416. (inputs
  16417. (list sbcl-aserve sbcl-kmrcl sbcl-xmls))
  16418. (home-page "https://github.com/nsrahmad/cl-rss")
  16419. (synopsis "Common Lisp RSS processor")
  16420. (description
  16421. "This package provides a Common Lisp library for fetching and parsing
  16422. RSS feeds data via HTTP. Currently, it supports RSS versions 0.90,
  16423. 0.91, and 0.92 as well as RSS version 2.")
  16424. (license license:bsd-3))))
  16425. (define-public cl-rss
  16426. (sbcl-package->cl-source-package sbcl-rss))
  16427. (define-public sbcl-trivial-with-current-source-form
  16428. (let ((commit "9e343e043a77a5478c1f77bb626db22335fbbfb8")
  16429. (revision "1"))
  16430. (package
  16431. (name "sbcl-trivial-with-current-source-form")
  16432. (version (git-version "0.1.0" revision commit))
  16433. (source
  16434. (origin
  16435. (method git-fetch)
  16436. (uri (git-reference
  16437. (url
  16438. "https://github.com/scymtym/trivial-with-current-source-form")
  16439. (commit commit)))
  16440. (file-name (git-file-name "trivial-with-current-source-form" version))
  16441. (sha256
  16442. (base32 "15zs7mc422ycp1cvcxmirif1dq15mlmv8vzd6l6nzn4qgmph9wz0"))))
  16443. (build-system asdf-build-system/sbcl)
  16444. (inputs
  16445. (list sbcl-alexandria))
  16446. (home-page "https://github.com/scymtym/trivial-with-current-source-form")
  16447. (synopsis "Help producing better errors for macro users")
  16448. (description
  16449. "This library allows macro writers to provide better feedback to macro
  16450. users when errors are signaled during macroexpansion. It uses the compiler's
  16451. concept of a source-form to report where the error or warning is located.")
  16452. (license license:lgpl3))))
  16453. (define-public ecl-trivial-with-current-source-form
  16454. ;; Trivial-with-current-source-form does not give any benefits on ECL.
  16455. ;; This package is so packages dependent on trivial-with-current-source-form
  16456. ;; can be loaded on ECL.
  16457. (sbcl-package->ecl-package sbcl-trivial-with-current-source-form))
  16458. (define-public cl-trivial-with-current-source-form
  16459. (sbcl-package->cl-source-package sbcl-trivial-with-current-source-form))
  16460. (define-public sbcl-tailrec
  16461. (let ((commit "6f882846d8f5bca9138df26510862e64bb15d92f")
  16462. (revision "2"))
  16463. (package
  16464. (name "sbcl-tailrec")
  16465. (version (git-version "0" revision commit))
  16466. (source
  16467. (origin
  16468. (method git-fetch)
  16469. (uri (git-reference
  16470. (url "https://github.com/charje/tailrec")
  16471. (commit commit)))
  16472. (file-name (git-file-name name version))
  16473. (sha256
  16474. (base32 "1h8m2npdzd2cpnl75pvv4yvvfwxa7kl6qvalc9s0y4yws0kaih3i"))))
  16475. (build-system asdf-build-system/sbcl)
  16476. (inputs
  16477. (list sbcl-alexandria sbcl-trivial-macroexpand-all
  16478. sbcl-trivial-with-current-source-form))
  16479. (home-page "https://github.com/charje/tailrec")
  16480. (synopsis "Macro to optimize a Common Lisp function for tail recursion")
  16481. (description "Just wrap your Common Lisp function in this macro call and
  16482. it will be optimized for tail recursion. You will be warned if the function
  16483. is not tail recursive.")
  16484. (license license:llgpl))))
  16485. (define-public ecl-tailrec
  16486. (sbcl-package->ecl-package sbcl-tailrec))
  16487. (define-public cl-tailrec
  16488. (sbcl-package->cl-source-package sbcl-tailrec))
  16489. (define-public sbcl-issr-core
  16490. (let ((commit "64e3b07a63a7ca3ad70ba42474f98ac4513580aa")
  16491. (revision "1"))
  16492. (package
  16493. (name "sbcl-issr-core")
  16494. (version (git-version "0.1" revision commit))
  16495. (source
  16496. (origin
  16497. (method git-fetch)
  16498. (uri (git-reference
  16499. (url "https://github.com/interactive-ssr/core")
  16500. (commit commit)))
  16501. (file-name (git-file-name "issr-core" version))
  16502. (sha256
  16503. (base32 "1bajb09crzadkirdpd6jrpcc55irjd4sxzavygr25l85pafyhniw"))))
  16504. (build-system asdf-build-system/sbcl)
  16505. (inputs
  16506. (list sbcl-cl-str sbcl-global-vars sbcl-plump sbcl-tailrec))
  16507. (home-page
  16508. "https://github.com/interactive-ssr/client/blob/master/main.org")
  16509. (synopsis "The core functionality for ISSR server modules")
  16510. (description
  16511. "ISSR core provides functions and variables for ISSR server modules so
  16512. that different servers can behave similarly. The most important features are
  16513. Document Object Model differencing to generate instructions to update a DOM,
  16514. and DOM cleaning, to ensure that all remote DOMs are the same.")
  16515. (license license:llgpl))))
  16516. (define-public ecl-issr-core
  16517. (sbcl-package->ecl-package sbcl-issr-core))
  16518. (define-public cl-issr-core
  16519. (sbcl-package->cl-source-package sbcl-issr-core))
  16520. (define-public sbcl-portal
  16521. (let ((commit "416589fa04cb239971422a1272acba236c8333be")
  16522. (revision "2"))
  16523. (package
  16524. (name "sbcl-portal")
  16525. (version (git-version "1.2" revision commit))
  16526. (source
  16527. (origin
  16528. (method git-fetch)
  16529. (uri (git-reference
  16530. (url "https://github.com/charJe/portal")
  16531. (commit commit)))
  16532. (file-name (git-file-name "portal" version))
  16533. (sha256
  16534. (base32 "1012jc068qdd8df6mmbn8vmmqlniqm5j2jbyrraw3yz8c13c8280"))))
  16535. (build-system asdf-build-system/sbcl)
  16536. (inputs
  16537. (list sbcl-alexandria
  16538. sbcl-arrows
  16539. sbcl-cl-base64
  16540. sbcl-cl-str
  16541. sbcl-flexi-streams
  16542. sbcl-global-vars
  16543. sbcl-ironclad
  16544. sbcl-parse-float
  16545. sbcl-usocket))
  16546. (home-page "https://github.com/charJe/portal")
  16547. (synopsis "Portable Websocket Server for Common Lisp")
  16548. (description
  16549. "This is a websocket server for Common Lisp using usockets to be
  16550. portable between implementations and operating systems. It has a programming
  16551. interface that allows for multiple websocket apps per server using Common Lisp
  16552. keywords for different websocket events. It has useful restarts and
  16553. customizable errors.")
  16554. (license license:llgpl))))
  16555. (define-public ecl-portal
  16556. (sbcl-package->ecl-package sbcl-portal))
  16557. (define-public cl-portal
  16558. (sbcl-package->cl-source-package sbcl-portal))
  16559. (define-public sbcl-hunchenissr
  16560. (let ((commit "7df702f2e110999a2f31c7ebad81bfc39ac06670")
  16561. (revision "1"))
  16562. (package
  16563. (name "sbcl-hunchenissr")
  16564. (version (git-version "1" revision commit))
  16565. (source
  16566. (origin
  16567. (method git-fetch)
  16568. (uri (git-reference
  16569. (url "https://github.com/interactive-ssr/hunchenissr")
  16570. (commit commit)))
  16571. (file-name (git-file-name "hunchenissr" version))
  16572. (sha256
  16573. (base32 "0826qrvk64pjspdklns29dv3zhzfhd6k42fq030xajv8a7hkcxda"))))
  16574. (build-system asdf-build-system/sbcl)
  16575. (inputs
  16576. (list sbcl-cl-base64
  16577. sbcl-cl-str
  16578. sbcl-hunchentoot
  16579. sbcl-issr-core
  16580. sbcl-jonathan
  16581. sbcl-plump
  16582. sbcl-portal))
  16583. (home-page "https://github.com/interactive-ssr/hunchenissr")
  16584. (synopsis "Interactive Server Side Rendering backend for Hunchentoot")
  16585. (description
  16586. "Hunchenissr works together with issr.js for the development of
  16587. interactive (changing without page refreshes) websites making use of websocket
  16588. and Common Lisp server HTML generation instead of mountains of convoluted
  16589. Javascript.")
  16590. (license license:llgpl))))
  16591. (define-public ecl-hunchenissr
  16592. (sbcl-package->ecl-package sbcl-hunchenissr))
  16593. (define-public cl-hunchenissr
  16594. (sbcl-package->cl-source-package sbcl-hunchenissr))
  16595. (define-public sbcl-hunchenissr-routes
  16596. (let ((commit "2e831975dc2a6c030f1b518747cf429be8484b31")
  16597. (revision "1"))
  16598. (package
  16599. (name "sbcl-hunchenissr-routes")
  16600. (version (git-version "0" revision commit))
  16601. (source
  16602. (origin
  16603. (method git-fetch)
  16604. (uri (git-reference
  16605. (url "https://github.com/interactive-ssr/hunchenissr-routes")
  16606. (commit commit)))
  16607. (file-name (git-file-name "hunchenissr-routes" version))
  16608. (sha256
  16609. (base32 "1xyqacihxwk4vnffqlg93czmalscglp6sh3bwy3qwb7hdxv6yxz6"))))
  16610. (build-system asdf-build-system/sbcl)
  16611. (inputs
  16612. (list sbcl-alexandria sbcl-cl-ppcre sbcl-cl-unification
  16613. sbcl-hunchenissr))
  16614. (home-page "https://github.com/interactive-ssr/hunchenissr-routes")
  16615. (synopsis "Enable path variables when using Hunchenissr")
  16616. (description
  16617. "This library enables path variables in networking routes when using
  16618. Hunchenissr for Common Lisp. If a part of the path (between two slashes)
  16619. starts with a question mark (?), that symbol (without question mark) will be
  16620. bound to whatever value was in the same place in the URL (as a string).")
  16621. (license license:llgpl))))
  16622. (define-public ecl-hunchenissr-routes
  16623. (sbcl-package->ecl-package sbcl-hunchenissr-routes))
  16624. (define-public cl-hunchenissr-routes
  16625. (sbcl-package->cl-source-package sbcl-hunchenissr-routes))
  16626. (define-public sbcl-genhash
  16627. (let ((commit "220ae1af8361dbd2005177f2ee11072b6a33934f")
  16628. (revision "1"))
  16629. (package
  16630. (name "sbcl-genhash")
  16631. (version (git-version "1.7" revision commit))
  16632. (source
  16633. (origin
  16634. (method git-fetch)
  16635. (uri (git-reference
  16636. (url "https://github.com/pnathan/genhash")
  16637. (commit commit)))
  16638. (file-name (git-file-name "cl-genhash" version))
  16639. (sha256
  16640. (base32 "1jnk1fix1zydhy0kn3cvlp6dy0241x7v8ahq001nlr6v152z1cwk"))))
  16641. (build-system asdf-build-system/sbcl)
  16642. (home-page "https://github.com/pnathan/genhash")
  16643. (synopsis "Generic hash tables for Common Lisp")
  16644. (description
  16645. "This an implementation of CDR 2: generic hash tables for Common Lisp")
  16646. (license license:public-domain))))
  16647. (define-public cl-genhash
  16648. (sbcl-package->cl-source-package sbcl-genhash))
  16649. (define-public ecl-genhash
  16650. (sbcl-package->ecl-package sbcl-genhash))
  16651. (define-public sbcl-spinneret
  16652. ;; No release since 2019, no tags.
  16653. (let ((commit "52709ab953c46b24cbc2f0e3a50ae362916e730c"))
  16654. (package
  16655. (name "sbcl-spinneret")
  16656. (version (git-version "3.0" "5" commit))
  16657. (source
  16658. (origin
  16659. (method git-fetch)
  16660. (uri (git-reference
  16661. (url "https://github.com/ruricolist/spinneret/")
  16662. (commit commit)))
  16663. (file-name (git-file-name name version))
  16664. (sha256
  16665. (base32 "1wzs0hzlwf0vzk4gb66psqz6gqcf3x7yfpi9gghbil97iz6fyc7z"))))
  16666. (build-system asdf-build-system/sbcl)
  16667. (inputs
  16668. (list sbcl-alexandria
  16669. sbcl-global-vars
  16670. sbcl-parenscript
  16671. sbcl-cl-markdown
  16672. sbcl-cl-ppcre
  16673. sbcl-serapeum
  16674. sbcl-trivial-gray-streams))
  16675. (native-inputs
  16676. (list sbcl-fiveam))
  16677. (home-page "https://github.com/ruricolist/spinneret")
  16678. (synopsis "Common Lisp HTML5 generator")
  16679. (description
  16680. "In the crowded space of Common Lisp HTML generators, Spinneret
  16681. occupies the following coordinates:
  16682. @itemize
  16683. @item Modern. Targets HTML5. Does not treat XML and HTML as the same
  16684. problem. Assumes you will be serving your documents as UTF-8.
  16685. @item Composable. Makes it easy to refactor HTML generation into separate
  16686. functions and macros.
  16687. @item Pretty. Treats HTML as a document format, not a serialization. Output
  16688. is idiomatic and readable, following the coding style of the HTML5
  16689. specification.
  16690. @item Aggressive. If something can be interpreted as HTML, then it will be,
  16691. meaning that some Lisp forms can't be mixed with HTML syntax. In the
  16692. trade-off between 90% convenience and 10% correctness Spinneret is on the side
  16693. of convenience.
  16694. @item Bilingual. Spinneret (after loading @code{spinneret/ps}) has the same
  16695. semantics in Lisp and Parenscript.
  16696. @end itemize\n")
  16697. (license license:expat))))
  16698. (define-public ecl-spinneret
  16699. (sbcl-package->ecl-package sbcl-spinneret))
  16700. (define-public cl-spinneret
  16701. (sbcl-package->cl-source-package sbcl-spinneret))
  16702. (define-public sbcl-path-parse
  16703. (let ((commit "86183f3752374435f8933394b4c5d8e75a37a113")
  16704. (revision "1"))
  16705. (package
  16706. (name "sbcl-path-parse")
  16707. (version (git-version "0.1" revision commit))
  16708. (source
  16709. (origin
  16710. (method git-fetch)
  16711. (uri (git-reference
  16712. (url "https://github.com/eudoxia0/path-parse")
  16713. (commit commit)))
  16714. (file-name (git-file-name "cl-path-parse" version))
  16715. (sha256
  16716. (base32 "10mxm6q62cfpv3hw2w8k968ba8a1xglqdkwlkqs4l4nby3b11aaq"))))
  16717. (build-system asdf-build-system/sbcl)
  16718. (inputs
  16719. (list sbcl-split-sequence))
  16720. (native-inputs
  16721. (list sbcl-fiveam))
  16722. (home-page "https://github.com/eudoxia0/path-parse")
  16723. (synopsis "Parse the PATH environment variable in Common Lisp")
  16724. (description
  16725. "This package provides a function to parse the @code{PATH} environment
  16726. variable portably in Common Lisp.")
  16727. (license license:expat))))
  16728. (define-public cl-path-parse
  16729. (sbcl-package->cl-source-package sbcl-path-parse))
  16730. (define-public ecl-path-parse
  16731. (sbcl-package->ecl-package sbcl-path-parse))
  16732. (define-public sbcl-cl-libxml2
  16733. (let ((commit "8d03110c532c1a3fe15503fdfefe82f60669e4bd"))
  16734. (package
  16735. (name "sbcl-cl-libxml2")
  16736. (version (git-version "0.3.4" "1" commit))
  16737. (source
  16738. (origin
  16739. (method git-fetch)
  16740. (uri (git-reference
  16741. (url "https://github.com/archimag/cl-libxml2")
  16742. (commit commit)))
  16743. (file-name (git-file-name "cl-libxml2" version))
  16744. (sha256
  16745. (base32 "09049c13cfp5sc6x9lrw762jd7a9qkfq5jgngqgrzn4kn9qscarw"))))
  16746. (build-system asdf-build-system/sbcl)
  16747. (inputs
  16748. `(("alexandria" ,sbcl-alexandria)
  16749. ("cffi" ,sbcl-cffi)
  16750. ("flexi-streams" ,sbcl-flexi-streams)
  16751. ("garbage-pools" ,sbcl-garbage-pools)
  16752. ("iterate" ,sbcl-iterate)
  16753. ("metabang-bind" ,sbcl-metabang-bind)
  16754. ("puri" ,sbcl-puri)
  16755. ;; Non-Lisp inputs:
  16756. ("libxml2" ,libxml2)
  16757. ("libxslt" ,libxslt)))
  16758. (native-inputs
  16759. (list sbcl-lift))
  16760. (arguments
  16761. `(#:tests? #f ; FIXME: Tests get stuck indefinitly
  16762. #:phases
  16763. (modify-phases %standard-phases
  16764. (add-after 'unpack 'fix-paths
  16765. (lambda* (#:key inputs outputs #:allow-other-keys)
  16766. (substitute* "tree/xtree.lisp"
  16767. (("libxml2.so.2")
  16768. (string-append (assoc-ref inputs "libxml2") "/lib/libxml2.so")))
  16769. (let ((libxslt (assoc-ref inputs "libxslt")))
  16770. (substitute* "xslt/xslt.lisp"
  16771. (("libxslt.so.1")
  16772. (string-append libxslt "/lib/libxslt.so"))
  16773. (("libexslt.so.0")
  16774. (string-append libxslt "/lib/libexslt.so"))
  16775. (("cllibxml2.so")
  16776. (string-append (assoc-ref outputs "out") "/lib/cllibxml2.so"))))
  16777. #t))
  16778. (add-before 'build 'build-helper-library
  16779. (lambda* (#:key inputs outputs #:allow-other-keys)
  16780. (let ((prefix-dir (string-append (assoc-ref outputs "out"))))
  16781. (mkdir-p (string-append prefix-dir "/lib"))
  16782. (invoke "make" "-C" "foreign" "install"
  16783. "INSOPTS="
  16784. (string-append "PREFIX=" prefix-dir))
  16785. #t)))
  16786. (add-after 'unpack 'fix-tests
  16787. (lambda _
  16788. (substitute* '("cl-libxml2.asd" "cl-libxslt.asd" "xfactory.asd")
  16789. ((" :force t") ""))
  16790. #t)))))
  16791. (home-page "https://web.archive.org/web/20160121073421/http://cl-libxml2.googlecode.com/svn/doc/index.html")
  16792. (synopsis "High-level wrapper around libxml2 and libxslt libraries")
  16793. (description
  16794. "cl-libxml2 is high-level Common Lisp wrapper around the @code{libxml2}
  16795. and @code{libxslt} libraries.
  16796. @itemize
  16797. @item Interfaces for tree manipulation (like @code{cxml-stp}).
  16798. @item Interface for HTML 4.0 non-validating parsers.
  16799. @item Specific APIs to process HTML trees, especially serialization.
  16800. @item XPath API.
  16801. @item XSLT API.
  16802. @item Custom URL resolvers.
  16803. @item XPath extension functions.
  16804. @item XSLT extension elements.
  16805. @item Translates @code{libxml2} and @code{libxslt} errors to Lisp conditions.
  16806. @item Extends the Common Lisp @code{iterate} library with custom drivers for
  16807. child nodes enumeration, etc.
  16808. @item The @code{XFACTORY} system provides a simple and compact syntax for XML generation.
  16809. @end itemize\n")
  16810. (license license:llgpl))))
  16811. (define-public ecl-cl-libxml2
  16812. (sbcl-package->ecl-package sbcl-cl-libxml2))
  16813. (define-public cl-libxml2
  16814. (sbcl-package->cl-source-package sbcl-cl-libxml2))
  16815. (define-public sbcl-pileup
  16816. (let ((commit "f269473a570a8e55881082545ee63cfe5c7d3e72")
  16817. (revision "1"))
  16818. (package
  16819. (name "sbcl-pileup")
  16820. (version (git-version "1.0.1" revision commit))
  16821. (source
  16822. (origin
  16823. (method git-fetch)
  16824. (uri (git-reference
  16825. (url "https://github.com/nikodemus/pileup")
  16826. (commit commit)))
  16827. (file-name (git-file-name "cl-pileup" version))
  16828. (sha256
  16829. (base32 "01gvshpxil0ggjgfmgcymbgmpsfaxy6aggm0bywkn40rck3038vb"))))
  16830. (build-system asdf-build-system/sbcl)
  16831. (inputs
  16832. (list sbcl-alexandria sbcl-bordeaux-threads))
  16833. (native-inputs
  16834. (list sbcl-hu.dwim.stefil))
  16835. (home-page "https://github.com/nikodemus/pileup")
  16836. (synopsis "Simple thread-safe binary heap implementation for Common Lisp")
  16837. (description
  16838. "@code{Pileup} is a portable, performant, and thread-safe binary heap
  16839. for Common Lisp.")
  16840. (license license:expat))))
  16841. (define-public cl-pileup
  16842. (sbcl-package->cl-source-package sbcl-pileup))
  16843. (define-public ecl-pileup
  16844. (sbcl-package->ecl-package sbcl-pileup))
  16845. (define-public sbcl-feeder
  16846. ;; No release.
  16847. (let ((commit "b05f517d7729564575cc809e086c262646a94d34")
  16848. (revision "1"))
  16849. (package
  16850. (name "sbcl-feeder")
  16851. (version (git-version "1.0.0" revision commit))
  16852. (source
  16853. (origin
  16854. (method git-fetch)
  16855. (uri (git-reference
  16856. (url "https://github.com/Shinmera/feeder")
  16857. (commit commit)))
  16858. (file-name (git-file-name "feeder" version))
  16859. (sha256
  16860. (base32 "1dpbzhycg50snl3j01c8dh8gdvhfhz0hnfl54xy55a3wbr3m6rp7"))))
  16861. (build-system asdf-build-system/sbcl)
  16862. (inputs
  16863. (list sbcl-documentation-utils sbcl-local-time sbcl-plump))
  16864. (home-page "https://shinmera.github.io/feeder/")
  16865. (synopsis "RSS, Atom and general feed parsing and generating")
  16866. (description
  16867. "Feeder is a syndication feed library. It presents a general protocol
  16868. for representation of feed items, as well as a framework to translate these
  16869. objects from and to external formats. It also implements the RSS 2.0 and Atom
  16870. formats within this framework.")
  16871. (license license:zlib))))
  16872. (define-public ecl-feeder
  16873. (sbcl-package->ecl-package sbcl-feeder))
  16874. (define-public cl-feeder
  16875. (sbcl-package->cl-source-package sbcl-feeder))
  16876. (define-public sbcl-routes
  16877. (let ((commit "1b79e85aa653e1ec87e21ca745abe51547866fa9")
  16878. (revision "1"))
  16879. (package
  16880. (name "sbcl-routes")
  16881. (version (git-version "0.2.5" revision commit))
  16882. (source
  16883. (origin
  16884. (method git-fetch)
  16885. (uri (git-reference
  16886. (url "https://github.com/archimag/cl-routes")
  16887. (commit commit)))
  16888. (file-name (git-file-name "cl-routes" version))
  16889. (sha256
  16890. (base32 "1zpk3cp2v8hm50ppjl10yxr437vv4552r8hylvizglzrq2ibsbr1"))))
  16891. (build-system asdf-build-system/sbcl)
  16892. (arguments
  16893. `(#:phases
  16894. (modify-phases %standard-phases
  16895. (add-after 'unpack 'fix-tests
  16896. (lambda* (#:key inputs #:allow-other-keys)
  16897. ;; Fix: :FORCE and :FORCE-NOT arguments not allowed in
  16898. ;; a nested call to ASDF/OPERATE:OPERATE unless
  16899. ;; identically to toplevel
  16900. (substitute* "routes.asd"
  16901. ((" :force t") "")))))))
  16902. (inputs
  16903. `(("iterate" ,sbcl-iterate)
  16904. ("puri" ,sbcl-puri)
  16905. ("split-sequence" ,sbcl-split-sequence)))
  16906. (native-inputs
  16907. (list sbcl-lift))
  16908. (home-page "https://github.com/archimag/cl-routes")
  16909. (synopsis "Rails routes system for Common Lisp")
  16910. (description
  16911. "This is a a Common Lisp re-implementation of the Rails routes system
  16912. for mapping URLs.")
  16913. (license license:llgpl))))
  16914. (define-public cl-routes
  16915. (sbcl-package->cl-source-package sbcl-routes))
  16916. (define-public ecl-routes
  16917. (sbcl-package->ecl-package sbcl-routes))
  16918. (define-public sbcl-terminfo
  16919. (let ((commit "b8b2e3ed786bfcf9f1aa4a264cee2e93135080f5")
  16920. (revision "1"))
  16921. (package
  16922. (name "sbcl-terminfo")
  16923. (version (git-version "0.0.0" revision commit))
  16924. (source
  16925. (origin
  16926. (method git-fetch)
  16927. (uri (git-reference
  16928. (url "https://github.com/npatrick04/terminfo")
  16929. (commit commit)))
  16930. (file-name (git-file-name "terminfo" version))
  16931. (sha256
  16932. (base32 "1nmin9rr6f75xdhxysba66xa1dh62fh27w9ad1cvmj0062armf6b"))))
  16933. (build-system asdf-build-system/sbcl)
  16934. (synopsis "Terminfo database front end in Common Lisp")
  16935. (home-page "https://github.com/npatrick04/terminfo")
  16936. (description
  16937. "This is a terminfo database front end in Common Lisp. The package
  16938. provides a method for determining which capabilities a terminal
  16939. (e.g. \"xterm\") has and methods to compile or put commands to a stream.")
  16940. (license license:expat))))
  16941. (define-public cl-terminfo
  16942. (sbcl-package->cl-source-package sbcl-terminfo))
  16943. (define-public ecl-terminfo
  16944. (sbcl-package->ecl-package sbcl-terminfo))
  16945. (define-public sbcl-conium
  16946. (let ((commit "089adfd8759ec7973bb6f67b98d7a246e67aeb05")
  16947. (revision "1"))
  16948. (package
  16949. (name "sbcl-conium")
  16950. (version (git-version "0.0.0" revision commit))
  16951. (source
  16952. (origin
  16953. (method git-fetch)
  16954. (uri (git-reference
  16955. (url "https://github.com/sharplispers/conium")
  16956. (commit commit)))
  16957. (file-name (git-file-name "conium" version))
  16958. (sha256
  16959. (base32 "0y31za8xr8734p2pf8mrw1jd1fksh2d4y1p12wwjyn8hxxsvsx1w"))))
  16960. (build-system asdf-build-system/sbcl)
  16961. (inputs
  16962. (list sbcl-closer-mop))
  16963. (home-page "https://github.com/sharplispers/conium")
  16964. (synopsis "Portability library for debugger- and compiler-related tasks")
  16965. (description
  16966. "Conium is a portability library for debugger- and compiler-related
  16967. tasks in Common Lisp. It is fork of SWANK-BACKEND.")
  16968. (license license:public-domain))))
  16969. (define-public cl-conium
  16970. (sbcl-package->cl-source-package sbcl-conium))
  16971. (define-public ecl-conium
  16972. (sbcl-package->ecl-package sbcl-conium))
  16973. (define-public sbcl-terminal-size
  16974. (let ((commit "e0b3d56a9dd3366baf2a05d84381da5747a2ef4a")
  16975. (revision "1"))
  16976. (package
  16977. (name "sbcl-terminal-size")
  16978. (version (git-version "0.1" revision commit))
  16979. (source
  16980. (origin
  16981. (method git-fetch)
  16982. (uri (git-reference
  16983. (url "https://github.com/eudoxia0/terminal-size")
  16984. (commit commit)))
  16985. (file-name (git-file-name "cl-terminal-size" version))
  16986. (sha256
  16987. (base32 "1212wbadms9jzrqgarpj3d9xh9w4dab8jhx4k2aryqgf116zs42h"))))
  16988. (build-system asdf-build-system/sbcl)
  16989. (inputs
  16990. (list sbcl-cffi sbcl-osicat))
  16991. (native-inputs
  16992. (list sbcl-fiveam))
  16993. (home-page "https://github.com/eudoxia0/terminal-size")
  16994. (synopsis "Get the size of the terminal from Common Lisp")
  16995. (description
  16996. "This package provides the @code{terminal-size:size} function to get the
  16997. size of the terminal from Common Lisp.")
  16998. (license license:expat))))
  16999. (define-public cl-terminal-size
  17000. (sbcl-package->cl-source-package sbcl-terminal-size))
  17001. (define-public ecl-terminal-size
  17002. (sbcl-package->ecl-package sbcl-terminal-size))
  17003. (define-public sbcl-cl-readline
  17004. (let ((commit "8438c9ebd92ccc95ebab9cc9cbe6c72d44fccc58")
  17005. (revision "1"))
  17006. (package
  17007. (name "sbcl-cl-readline")
  17008. (version (git-version "0.1.2" revision commit))
  17009. (source
  17010. (origin
  17011. (method git-fetch)
  17012. (uri (git-reference
  17013. (url "https://github.com/vindarel/cl-readline")
  17014. (commit commit)))
  17015. (file-name (git-file-name "cl-readline" version))
  17016. (sha256
  17017. (base32 "14iskvqfw71ssaav483vmqw62lrpznysjs800gjjppxs785p1fa0"))))
  17018. (build-system asdf-build-system/sbcl)
  17019. (inputs
  17020. `(("alexandria" ,sbcl-alexandria)
  17021. ("cffi" ,sbcl-cffi)
  17022. ("readline" ,readline)))
  17023. (arguments
  17024. '(#:phases
  17025. (modify-phases %standard-phases
  17026. (add-after 'unpack 'fix-paths
  17027. (lambda* (#:key inputs #:allow-other-keys)
  17028. (substitute* "cl-readline.lisp"
  17029. (("libreadline.so")
  17030. (string-append (assoc-ref inputs "readline")
  17031. "/lib/libreadline.so"))))))))
  17032. (home-page "https://github.com/vindarel/cl-readline")
  17033. (synopsis "Common Lisp bindings to the GNU Readline library")
  17034. (description
  17035. "The Readline library provides a set of functions for use by
  17036. applications that allow users to edit command lines as they are typed in.
  17037. Both Emacs and vi editing modes are available. The Readline library includes
  17038. additional functions to maintain a list of previously-entered command lines, to
  17039. recall and perhaps reedit those lines, and perform csh-like history expansion on
  17040. previous commands.")
  17041. (license license:gpl3+))))
  17042. (define-public cl-readline
  17043. (sbcl-package->cl-source-package sbcl-cl-readline))
  17044. (define-public ecl-cl-readline
  17045. (sbcl-package->ecl-package sbcl-cl-readline))
  17046. (define-public sbcl-generic-comparability
  17047. (let ((commit "53fc2846319a6eb46b36581e203e1f1542a8acff")
  17048. (revision "1"))
  17049. (package
  17050. (name "sbcl-generic-comparability")
  17051. (version (git-version "1.0.1" revision commit))
  17052. (source
  17053. (origin
  17054. (method git-fetch)
  17055. (uri (git-reference
  17056. (url "https://github.com/pnathan/generic-comparability")
  17057. (commit commit)))
  17058. (file-name (git-file-name "generic-comparability" version))
  17059. (sha256
  17060. (base32 "01ma0cwirxarwwmdwflnh8kmysmr2smh5kyvzhb2074ljxg8yq2p"))))
  17061. (build-system asdf-build-system/sbcl)
  17062. (inputs
  17063. (list sbcl-alexandria))
  17064. (native-inputs
  17065. (list sbcl-fiveam))
  17066. (home-page "https://github.com/pnathan/generic-comparability")
  17067. (synopsis "Implementation of cdr-8")
  17068. (description
  17069. "GENERIC-COMPARABILITY is an implementation of CDR-8 (Generic Equality
  17070. and Comparison for Common Lisp). CDR-8 provides an interface for the EQUALS
  17071. function, which is defined as a general equality predicate, as well as a set of
  17072. ordering (COMPARE) functions for comparison. The semantics are described in
  17073. the CDR-8 standard.")
  17074. (license license:llgpl))))
  17075. (define-public cl-generic-comparability
  17076. (sbcl-package->cl-source-package sbcl-generic-comparability))
  17077. (define-public ecl-generic-comparability
  17078. (sbcl-package->ecl-package sbcl-generic-comparability))
  17079. (define-public sbcl-cl-libyaml
  17080. (let ((commit "a7fe9f68bddfd00b7ca467b65b3b41b276336843")
  17081. (revision "1"))
  17082. (package
  17083. (name "sbcl-cl-libyaml")
  17084. (version (git-version "0.1" revision commit))
  17085. (source
  17086. (origin
  17087. (method git-fetch)
  17088. (uri (git-reference
  17089. (url "https://github.com/eudoxia0/cl-libyaml")
  17090. (commit commit)))
  17091. (file-name (git-file-name "cl-libyaml" version))
  17092. (sha256
  17093. (base32
  17094. "06pvmackyhq03rjmihpx6w63m6cy8wx78ll5xpwwvd85bgrqq817"))))
  17095. (build-system asdf-build-system/sbcl)
  17096. (native-inputs
  17097. (list sbcl-fiveam))
  17098. (inputs
  17099. `(("cffi" ,sbcl-cffi)
  17100. ("libyaml" ,libyaml)))
  17101. (arguments
  17102. '(#:phases
  17103. (modify-phases %standard-phases
  17104. (add-after 'unpack 'fix-paths
  17105. (lambda* (#:key inputs #:allow-other-keys)
  17106. (substitute* "src/library.lisp"
  17107. (("libyaml.so")
  17108. (string-append (assoc-ref inputs "libyaml")
  17109. "/lib/libyaml.so"))))))))
  17110. (home-page "https://github.com/eudoxia0/cl-libyaml")
  17111. (synopsis "Libyaml bindings for Common Lisp")
  17112. (description
  17113. "This is a binding to the libyaml library. It's not meant as
  17114. a full library for YAML, just a bare binding with a couple of utility macros.
  17115. For a YAML parser and emitter using this, check out cl-yaml.")
  17116. (license license:expat))))
  17117. (define-public cl-libyaml
  17118. (sbcl-package->cl-source-package sbcl-cl-libyaml))
  17119. (define-public ecl-cl-libyaml
  17120. (sbcl-package->ecl-package sbcl-cl-libyaml))
  17121. (define-public sbcl-cl-yaml
  17122. (let ((commit "c3202be9a753c51f3bc79538a5a498a8865192aa")
  17123. (revision "1"))
  17124. (package
  17125. (name "sbcl-cl-yaml")
  17126. (version (git-version "0.1" revision commit))
  17127. (source
  17128. (origin
  17129. (method git-fetch)
  17130. (uri (git-reference
  17131. (url "https://github.com/eudoxia0/cl-yaml")
  17132. (commit commit)))
  17133. (file-name (git-file-name "cl-yaml" version))
  17134. (sha256
  17135. (base32 "1izjg0v6rf7dh069bbnnr67l30lsqj86wdk7y9ggbgiwh6v9j185"))))
  17136. (build-system asdf-build-system/sbcl)
  17137. (inputs
  17138. (list sbcl-alexandria sbcl-cl-libyaml sbcl-cl-ppcre
  17139. sbcl-parse-number))
  17140. (native-inputs
  17141. (list sbcl-cl-fad sbcl-fiveam sbcl-generic-comparability
  17142. sbcl-trivial-benchmark sbcl-yason))
  17143. (home-page "https://github.com/eudoxia0/cl-yaml")
  17144. (synopsis "YAML parser for Common Lisp")
  17145. (description
  17146. "This is a YAML parser and emitter for Common Lisp built on top of
  17147. libyaml.")
  17148. (license license:expat))))
  17149. (define-public cl-yaml
  17150. (sbcl-package->cl-source-package sbcl-cl-yaml))
  17151. (define-public ecl-cl-yaml
  17152. (sbcl-package->ecl-package sbcl-cl-yaml))
  17153. (define-public sbcl-linedit
  17154. (let ((commit "0561c97dfca2f5854fcc66558a567a9875ddcb8f")
  17155. (revision "1"))
  17156. (package
  17157. (name "sbcl-linedit")
  17158. (version (git-version "0.17.6" revision commit))
  17159. (source
  17160. (origin
  17161. (method git-fetch)
  17162. (uri (git-reference
  17163. (url "https://github.com/sharplispers/linedit")
  17164. (commit commit)))
  17165. (file-name (git-file-name "cl-linedit" version))
  17166. (sha256
  17167. (base32 "0hhh7xn6q12rviayfihg1ym6x6csa0pdjgb88ykqbrz2rs3pgpz5"))))
  17168. (build-system asdf-build-system/sbcl)
  17169. (inputs
  17170. (list sbcl-alexandria sbcl-cffi sbcl-osicat sbcl-terminfo))
  17171. (home-page "https://github.com/sharplispers/linedit")
  17172. (synopsis "Readline-style line-editor for Common Lisp")
  17173. (description
  17174. "Linedit is a readline-style library written in Common Lisp that
  17175. provides customizable line-editing for Common Lisp programs.")
  17176. (license license:expat))))
  17177. (define-public cl-linedit
  17178. (sbcl-package->cl-source-package sbcl-linedit))
  17179. (define-public ecl-linedit
  17180. (sbcl-package->ecl-package sbcl-linedit))
  17181. (define-public sbcl-diff
  17182. (let ((commit "9c84befa598d4e07c3d223242b5b3f83cd94f301")
  17183. (revision "1"))
  17184. (package
  17185. (name "sbcl-diff")
  17186. (version (git-version "0.4" revision commit))
  17187. (source
  17188. (origin
  17189. (method git-fetch)
  17190. (uri (git-reference
  17191. (url "https://github.com/froydnj/diff")
  17192. (commit commit)))
  17193. (file-name (git-file-name "cl-diff" version))
  17194. (sha256
  17195. (base32 "1giafck8qfvb688kx5bn9g32rfc12jjywg8vdav36aqbd6lxf5z5"))))
  17196. (build-system asdf-build-system/sbcl)
  17197. (inputs
  17198. (list sbcl-cl-ppcre sbcl-trivial-gray-streams))
  17199. (home-page "https://github.com/froydnj/diff")
  17200. (synopsis "Common Lisp library for computing differences between files")
  17201. (description
  17202. "DIFF is a package for computing various forms of differences between
  17203. blobs of data and then doing neat things with those differences. Currently diff
  17204. knows how to compute three common forms of differences: \"unified\" format
  17205. diffs, \"context\" format diffs, and \"vdelta\" format binary diffs.")
  17206. (license license:bsd-3))))
  17207. (define-public cl-diff
  17208. (sbcl-package->cl-source-package sbcl-diff))
  17209. (define-public ecl-diff
  17210. (sbcl-package->ecl-package sbcl-diff))
  17211. (define-public sbcl-montezuma
  17212. (let ((commit "ee2129eece7065760de4ebbaeffaadcb27644738")
  17213. (revision "1"))
  17214. (package
  17215. (name "sbcl-montezuma")
  17216. (version (git-version "0.1.3" revision commit))
  17217. (source
  17218. (origin
  17219. (method git-fetch)
  17220. (uri (git-reference
  17221. (url "https://github.com/sharplispers/montezuma")
  17222. (commit commit)))
  17223. (file-name (git-file-name "cl-montezuma" version))
  17224. (sha256
  17225. (base32 "0svmvsbsirydk3c1spzfvj8qmkzcs9i69anpfvk1843i62wb7x2c"))))
  17226. (build-system asdf-build-system/sbcl)
  17227. (arguments
  17228. `(#:phases
  17229. (modify-phases %standard-phases
  17230. ;; The _darcs directory contains a second copy of
  17231. ;; montezuma-indexfiles.asd. Remove the directory to
  17232. ;; prevent build failure caused by .asd files that have
  17233. ;; the same filename.
  17234. (add-after 'unpack 'remove-darcs-directory
  17235. (lambda _
  17236. (delete-file-recursively
  17237. "contrib/montezuma-indexfiles/_darcs")))
  17238. ;; Tests fail with: :FORCE and :FORCE-NOT arguments not
  17239. ;; allowed in a nested call to ASDF/OPERATE:OPERATE unless
  17240. ;; identically to toplevel.
  17241. (add-after 'unpack 'fix-tests
  17242. (lambda _
  17243. (substitute* "montezuma.asd"
  17244. ((":force t") "")))))))
  17245. (inputs
  17246. `(("babel" ,sbcl-babel)
  17247. ("cl-fad" ,sbcl-cl-fad)
  17248. ("cl-ppcre" ,sbcl-cl-ppcre)))
  17249. (native-inputs
  17250. (list sbcl-trivial-timeout))
  17251. (home-page "https://github.com/sharplispers/montezuma")
  17252. (synopsis "Full-text indexing and search for Common Lisp")
  17253. (description
  17254. "Montezuma is a text search engine library for Lisp based on the Ferret
  17255. library for Ruby, which is itself based on the Lucene library for Java.")
  17256. (license (list license:expat ; montezuma
  17257. license:gpl3+))))) ; contrib/montezuma-indexfiles
  17258. (define-public cl-montezuma
  17259. (sbcl-package->cl-source-package sbcl-montezuma))
  17260. (define-public ecl-montezuma
  17261. (let ((pkg (sbcl-package->ecl-package sbcl-montezuma)))
  17262. (package
  17263. (inherit pkg)
  17264. (arguments
  17265. (substitute-keyword-arguments (package-arguments pkg)
  17266. ;; Tests fail with "Pathname without a physical namestring" error
  17267. ;; on ECL.
  17268. ((#:tests? _ #f) #f))))))
  17269. (define-public sbcl-cl-charms
  17270. (let ((commit "64aba59d89f85bc5c9402e445873965338a66a02")
  17271. (revision "1"))
  17272. (package
  17273. (name "sbcl-cl-charms")
  17274. (version (git-version "0.2.0" revision commit))
  17275. (source
  17276. (origin
  17277. (method git-fetch)
  17278. (uri (git-reference
  17279. (url "https://github.com/HiTECNOLOGYs/cl-charms")
  17280. (commit commit)))
  17281. (file-name (git-file-name "cl-charms" version))
  17282. (sha256
  17283. (base32 "1jczaypa9dhxr34yyhsxb6lrdnircjx8am4iqkc3shfpjn32q323"))))
  17284. (build-system asdf-build-system/sbcl)
  17285. (inputs
  17286. `(("alexandria" ,sbcl-alexandria)
  17287. ("cffi" ,sbcl-cffi)
  17288. ("ncurses" ,ncurses)))
  17289. (arguments
  17290. '(#:phases
  17291. (modify-phases %standard-phases
  17292. (add-after 'unpack 'fix-paths
  17293. (lambda* (#:key inputs #:allow-other-keys)
  17294. (substitute* "src/low-level/curses-bindings.lisp"
  17295. (("libncursesw.so")
  17296. (string-append (assoc-ref inputs "ncurses")
  17297. "/lib/libncursesw.so"))))))))
  17298. (home-page "https://github.com/HiTECNOLOGYs/cl-charms")
  17299. (synopsis "Interface to libcurses in Common Lisp")
  17300. (description
  17301. "@code{cl-charms} is an interface to libcurses in Common Lisp. It
  17302. provides both a raw, low-level interface to libcurses via CFFI, and a more
  17303. higher-level lispier interface.")
  17304. (license license:expat))))
  17305. (define-public cl-charms
  17306. (sbcl-package->cl-source-package sbcl-cl-charms))
  17307. (define-public ecl-cl-charms
  17308. (sbcl-package->ecl-package sbcl-cl-charms))
  17309. (define-public sbcl-trivial-open-browser
  17310. (let ((commit "7ab4743dea9d592639f15c565bfa0756e828c427")
  17311. (revision "1"))
  17312. (package
  17313. (name "sbcl-trivial-open-browser")
  17314. (version (git-version "0.1" revision commit))
  17315. (source
  17316. (origin
  17317. (method git-fetch)
  17318. (uri (git-reference
  17319. (url "https://github.com/eudoxia0/trivial-open-browser")
  17320. (commit commit)))
  17321. (file-name (git-file-name "trivial-open-browser" version))
  17322. (sha256
  17323. (base32 "0ixay1piq420i6adx642qhw45l6ik7rvgk52lyz27dvx5f8yqsdb"))))
  17324. (build-system asdf-build-system/sbcl)
  17325. (home-page "https://github.com/eudoxia0/trivial-open-browser")
  17326. (synopsis "Open a browser window from Common Lisp")
  17327. (description
  17328. "This package provides a library to open a web browser to a URL.")
  17329. (license license:expat))))
  17330. (define-public cl-trivial-open-browser
  17331. (sbcl-package->cl-source-package sbcl-trivial-open-browser))
  17332. (define-public ecl-trivial-open-browser
  17333. (sbcl-package->ecl-package sbcl-trivial-open-browser))
  17334. (define-public sbcl-clinenoise
  17335. (let ((commit "46e21f99d06a55d93eaa382cf652d55d457032ef")
  17336. (revision "1"))
  17337. (package
  17338. (name "sbcl-clinenoise")
  17339. (version (git-version "0.0.0" revision commit))
  17340. (source
  17341. (origin
  17342. (method git-fetch)
  17343. (uri (git-reference
  17344. (url "https://github.com/jasom/clinenoise")
  17345. (commit commit)))
  17346. (file-name (git-file-name "clinenoise" version))
  17347. (sha256
  17348. (base32 "0ydlirfk4dbpqqjwwph99v5swcrhd8v9g8q24fvs35wn2vm08lh1"))))
  17349. (build-system asdf-build-system/sbcl)
  17350. (inputs
  17351. (list sbcl-alexandria sbcl-cffi sbcl-split-sequence))
  17352. (home-page "https://github.com/jasom/clinenoise")
  17353. (synopsis "Port of linenoise to Common Lisp")
  17354. (description
  17355. "This package provides a trivial line-input library for VT-like
  17356. terminals.")
  17357. (license license:bsd-2))))
  17358. (define-public cl-clinenoise
  17359. (sbcl-package->cl-source-package sbcl-clinenoise))
  17360. (define-public ecl-clinenoise
  17361. (sbcl-package->ecl-package sbcl-clinenoise))
  17362. (define-public sbcl-trivial-raw-io
  17363. (let ((commit "b1a3c876305baa0dead419841de7b3e433a75867")
  17364. (revision "1"))
  17365. (package
  17366. (name "sbcl-trivial-raw-io")
  17367. (version (git-version "0.0.2" revision commit))
  17368. (source
  17369. (origin
  17370. (method git-fetch)
  17371. (uri (git-reference
  17372. (url "https://github.com/kingcons/trivial-raw-io")
  17373. (commit commit)))
  17374. (file-name (git-file-name "trivial-raw-io" version))
  17375. (sha256
  17376. (base32 "19290zw2b64k78wr62gv30pp7cmqg07q85vfwjknaffjdd73xwi1"))))
  17377. (build-system asdf-build-system/sbcl)
  17378. (inputs
  17379. (list sbcl-alexandria))
  17380. (home-page "https://github.com/kingcons/trivial-raw-io")
  17381. (synopsis "Trivial portability for raw *nix IO in Common Lisp")
  17382. (description
  17383. "This library exports three symbols: @code{with-raw-io},
  17384. @code{read-char}, and @code{read-line}, to provide raw POSIX I/O in Common
  17385. Lisp.")
  17386. (license license:bsd-2))))
  17387. (define-public cl-trivial-raw-io
  17388. (sbcl-package->cl-source-package sbcl-trivial-raw-io))
  17389. (define-public ecl-trivial-raw-io
  17390. (sbcl-package->ecl-package sbcl-trivial-raw-io))
  17391. (define-public sbcl-terminal-keypress
  17392. (let ((commit "2ef48c045aa627229764b2aa393a83d392d93d08")
  17393. (revision "1"))
  17394. (package
  17395. (name "sbcl-terminal-keypress")
  17396. (version (git-version "0.1" revision commit))
  17397. (source
  17398. (origin
  17399. (method git-fetch)
  17400. (uri (git-reference
  17401. (url "https://github.com/eudoxia0/terminal-keypress")
  17402. (commit commit)))
  17403. (file-name (git-file-name "cl-terminal-keypress" version))
  17404. (sha256
  17405. (base32 "11c4krpq5x55qkchx6ykcnb455ssb4r3jjywx3c3irfrkj733ybp"))))
  17406. (build-system asdf-build-system/sbcl)
  17407. (inputs
  17408. (list sbcl-alexandria sbcl-trivial-raw-io))
  17409. (native-inputs
  17410. (list sbcl-fiveam))
  17411. (home-page "https://github.com/eudoxia0/terminal-keypress")
  17412. (synopsis "Read keyboard events in the terminal from Common Lisp")
  17413. (description
  17414. "This is a library for reading semi-raw user input from terminals.
  17415. Semi-raw as in, we can't detect if the user pressed the @code{Control} key
  17416. alone, and the function keys are a mystery. What is supported, however, is:
  17417. @itemize
  17418. @item Regular characters
  17419. @item Control+[key]
  17420. @item Alt+[key]
  17421. @item Control+Alt+[key]
  17422. @end itemize")
  17423. (license license:expat))))
  17424. (define-public cl-terminal-keypress
  17425. (sbcl-package->cl-source-package sbcl-terminal-keypress))
  17426. (define-public ecl-terminal-keypress
  17427. (sbcl-package->ecl-package sbcl-terminal-keypress))
  17428. (define-public sbcl-periodic-table
  17429. (package
  17430. (name "sbcl-periodic-table")
  17431. (version "1.0")
  17432. (source
  17433. (origin
  17434. (method url-fetch)
  17435. (uri (string-append
  17436. "https://common-lisp.net/project/chemboy/periodic-table-"
  17437. version ".tar.gz"))
  17438. (sha256
  17439. (base32 "1ircvqm3q93ma4rxbxprb1i9rcax10ld6xmdzdhfnigr27sh5jvg"))))
  17440. (build-system asdf-build-system/sbcl)
  17441. (home-page "https://common-lisp.net/project/chemboy/")
  17442. (synopsis "Periodic table for Common Lisp")
  17443. (description
  17444. "This package defines a Common Lisp package, @code{:elements}, with an
  17445. @code{ELEMENT} structure and a number of functions to search the periodic
  17446. table.")
  17447. (license license:llgpl)))
  17448. (define-public cl-periodic-table
  17449. (sbcl-package->cl-source-package sbcl-periodic-table))
  17450. (define-public ecl-periodic-table
  17451. (sbcl-package->ecl-package sbcl-periodic-table))
  17452. (define-public sbcl-chemical-compounds
  17453. (package
  17454. (name "sbcl-chemical-compounds")
  17455. (version "1.0.2")
  17456. (source
  17457. (origin
  17458. (method url-fetch)
  17459. (uri (string-append
  17460. "https://common-lisp.net/project/chemboy/chemical-compounds-"
  17461. version ".tar.gz"))
  17462. (sha256
  17463. (base32 "12fd8a6ay5qlsq4givzgh9d55mbg4ci2vvmymig6pjl2ms64v0pf"))))
  17464. (build-system asdf-build-system/sbcl)
  17465. (inputs
  17466. `(("periodic-table" ,sbcl-periodic-table)))
  17467. (arguments
  17468. `(#:phases
  17469. (modify-phases %standard-phases
  17470. (add-after 'unpack 'fix-files
  17471. (lambda _
  17472. ;; Fix incorrect version number.
  17473. (substitute* "chemical-compounds.asd"
  17474. ((":version \"1.0.1\"")
  17475. (string-append ":version \"" ,version "\"")))
  17476. ;; Remove incorrect declaration of string type.
  17477. (substitute* "parsing.lisp"
  17478. (("\\(declare \\(simple-base-string string\\)")
  17479. "(declare")))))))
  17480. (home-page "https://common-lisp.net/project/chemboy/")
  17481. (synopsis "Chemical formula parser and pretty-printer for Common Lisp")
  17482. (description
  17483. "It can sometimes be useful to be able to parse chemical compounds in a
  17484. user-friendly syntax into easy-to-manipulate s-expressions. You also want to
  17485. be able to go in reverse. You could probably write your own parser — or you
  17486. could just install the chemical-compounds package.")
  17487. (license license:llgpl)))
  17488. (define-public cl-chemical-compounds
  17489. (sbcl-package->cl-source-package sbcl-chemical-compounds))
  17490. (define-public ecl-chemical-compounds
  17491. (sbcl-package->ecl-package sbcl-chemical-compounds))
  17492. (define-public sbcl-chemboy
  17493. (package
  17494. (name "sbcl-chemboy")
  17495. (version "0.3")
  17496. (source
  17497. (origin
  17498. (method url-fetch)
  17499. (uri (string-append
  17500. "https://common-lisp.net/project/chemboy/chemboy-"
  17501. version ".tar.gz"))
  17502. (sha256
  17503. (base32 "0lr134l16mjcgdj3fm2yff4chlfbihn1sji7q80y7lnr176zgs7d"))))
  17504. (build-system asdf-build-system/sbcl)
  17505. (inputs
  17506. `(("chemical-compounds" ,sbcl-chemical-compounds)
  17507. ("periodic-table" ,sbcl-periodic-table)))
  17508. (arguments
  17509. `(#:phases
  17510. (modify-phases %standard-phases
  17511. (add-after 'unpack 'fix-files
  17512. (lambda _
  17513. ;; Fix incorrect version number.
  17514. (substitute* "chemboy.asd"
  17515. ((":version \"0.2\"")
  17516. (string-append ":version \"" ,version "\"")))
  17517. ;; Remove incorrect declaration of string type.
  17518. (substitute* "query-parsing.lisp"
  17519. (("\\(declare \\(simple-base-string string\\)")
  17520. "(declare"))
  17521. ;; Fix incorrect function calls.
  17522. (substitute* "conversions.lisp"
  17523. (("\\(pprint-compound element s\\)")
  17524. "(pprint-compound element :stream s)")
  17525. (("\\(pprint-compound parsed-compound s\\)")
  17526. "(pprint-compound parsed-compound :stream s)")))))))
  17527. (home-page "https://common-lisp.net/project/chemboy/")
  17528. (synopsis "Common Lisp program for doing basic chemistry calculations")
  17529. (description
  17530. "Chemboy is a Common Lisp program for doing basic chemistry calculations.
  17531. This package provides the text-based interface for Chemboy.")
  17532. (license license:llgpl)))
  17533. (define-public cl-chemboy
  17534. (sbcl-package->cl-source-package sbcl-chemboy))
  17535. (define-public ecl-chemboy
  17536. (sbcl-package->ecl-package sbcl-chemboy))
  17537. (define-public sbcl-cl-pass
  17538. (let ((commit "e58e97c0c0588dc742c061208afb9bc31e4dbd34")
  17539. (revision "1"))
  17540. (package
  17541. (name "sbcl-cl-pass")
  17542. (version (git-version "0.1" revision commit))
  17543. (source
  17544. (origin
  17545. (method git-fetch)
  17546. (uri (git-reference
  17547. (url "https://github.com/eudoxia0/cl-pass")
  17548. (commit commit)))
  17549. (file-name (git-file-name "cl-pass" version))
  17550. (sha256
  17551. (base32 "05qx4jrkxqbqi72cxgswbpnifbdvp9mh7apc7566v522899bh0hb"))))
  17552. (build-system asdf-build-system/sbcl)
  17553. (inputs
  17554. (list sbcl-ironclad sbcl-trivial-utf-8 sbcl-split-sequence))
  17555. (native-inputs
  17556. (list sbcl-fiveam))
  17557. (home-page "https://github.com/eudoxia0/cl-pass")
  17558. (synopsis "Password hashing and verification library")
  17559. (description
  17560. "@code{cl-pass} is a password hashing and verification library.")
  17561. (license license:expat))))
  17562. (define-public cl-pass
  17563. (sbcl-package->cl-source-package sbcl-cl-pass))
  17564. (define-public ecl-cl-pass
  17565. (sbcl-package->ecl-package sbcl-cl-pass))
  17566. (define-public sbcl-which
  17567. (let ((commit "b2333e4fcacab6e5d85eecd28b5ef4944bda1448")
  17568. (revision "1"))
  17569. (package
  17570. (name "sbcl-which")
  17571. (version (git-version "0.1" revision commit))
  17572. (source
  17573. (origin
  17574. (method git-fetch)
  17575. (uri (git-reference
  17576. (url "https://github.com/eudoxia0/which")
  17577. (commit commit)))
  17578. (file-name (git-file-name "cl-which" version))
  17579. (sha256
  17580. (base32 "127pm9h4rm4w9aadw5yvamnfzhk2rr69kchx10rf9k7sk7izqqfk"))))
  17581. (build-system asdf-build-system/sbcl)
  17582. (inputs
  17583. (list sbcl-cl-fad sbcl-path-parse))
  17584. (native-inputs
  17585. (list sbcl-fiveam))
  17586. (home-page "https://github.com/eudoxia0/which")
  17587. (synopsis "The which command in Common Lisp")
  17588. (description
  17589. "This package provides an implementation of the @code{which} UNIX
  17590. command in Common Lisp.")
  17591. (license license:expat))))
  17592. (define-public cl-which
  17593. (sbcl-package->cl-source-package sbcl-which))
  17594. (define-public ecl-which
  17595. (sbcl-package->ecl-package sbcl-which))
  17596. (define-public sbcl-cl-num-utils
  17597. (let ((commit "97a88cd34540acf52e872a82ebfef3da0a34fa12")
  17598. (revision "1"))
  17599. (package
  17600. (name "sbcl-cl-num-utils")
  17601. (version (git-version "0.1" revision commit))
  17602. (source
  17603. (origin
  17604. (method git-fetch)
  17605. (uri (git-reference
  17606. (url "https://github.com/tpapp/cl-num-utils")
  17607. (commit commit)))
  17608. (file-name (git-file-name "cl-num-utils" version))
  17609. (sha256
  17610. (base32 "15ihsxxs76xnldmqfsbxybckqjwrxwcpphgghiwzr2mnbqjpdqkh"))))
  17611. (build-system asdf-build-system/sbcl)
  17612. (inputs
  17613. (list sbcl-anaphora sbcl-alexandria sbcl-array-operations
  17614. sbcl-cl-slice sbcl-let-plus))
  17615. (native-inputs
  17616. (list sbcl-clunit))
  17617. (home-page "https://github.com/tpapp/cl-num-utils")
  17618. (synopsis "Numerical utilities for Common Lisp")
  17619. (description
  17620. "@code{cl-num-utils} implements simple numerical functions for Common
  17621. Lisp, including:
  17622. @itemize
  17623. @item @code{num=}, a comparison operator for floats
  17624. @item simple arithmeric functions, like @code{sum} and @code{l2norm}
  17625. @item elementwise operations for arrays
  17626. @item intervals
  17627. @item special matrices and shorthand for their input
  17628. @item sample statistics
  17629. @item Chebyshev polynomials
  17630. @item univariate rootfinding
  17631. @end itemize")
  17632. (license license:boost1.0))))
  17633. (define-public cl-num-utils
  17634. (sbcl-package->cl-source-package sbcl-cl-num-utils))
  17635. (define-public ecl-cl-num-utils
  17636. (sbcl-package->ecl-package sbcl-cl-num-utils))
  17637. (define-public sbcl-lla
  17638. (let ((commit "ded805d1e9b1493e17b601116ba9bd8a3de3024f")
  17639. (revision "1"))
  17640. (package
  17641. (name "sbcl-lla")
  17642. (version (git-version "0.2" revision commit))
  17643. (source
  17644. (origin
  17645. (method git-fetch)
  17646. (uri (git-reference
  17647. (url "https://github.com/tpapp/lla")
  17648. (commit commit)))
  17649. (file-name (git-file-name "cl-lla" version))
  17650. (sha256
  17651. (base32 "0n9vc7dnyjbbsv1n7rd8sylwda5fsdf8f890g4nachanyx0xps9k"))))
  17652. (build-system asdf-build-system/sbcl)
  17653. (arguments
  17654. `(#:phases
  17655. (modify-phases %standard-phases
  17656. (add-after 'unpack 'fix-paths
  17657. (lambda* (#:key inputs #:allow-other-keys)
  17658. (substitute* "src/configuration.lisp"
  17659. (("\"libblas.so.3gf\"")
  17660. (string-append "\"" (assoc-ref inputs "lapack")
  17661. "/lib/libblas.so\""))
  17662. (("\"liblapack.so.3gf\"")
  17663. (string-append "\"" (assoc-ref inputs "lapack")
  17664. "/lib/liblapack.so\""))))))))
  17665. (inputs
  17666. `(("anaphora" ,sbcl-anaphora)
  17667. ("alexandria" ,sbcl-alexandria)
  17668. ("cffi" ,sbcl-cffi)
  17669. ("cl-num-utils" ,sbcl-cl-num-utils)
  17670. ("cl-slice" ,sbcl-cl-slice)
  17671. ("lapack" ,lapack)
  17672. ("let-plus" ,sbcl-let-plus)))
  17673. (native-inputs
  17674. (list sbcl-clunit))
  17675. (home-page "https://github.com/tpapp/lla")
  17676. (synopsis "Linear algebra library for Common Lisp")
  17677. (description
  17678. "LLA is a high-level Common Lisp library built on BLAS and LAPACK, but
  17679. providing a much more abstract interface with the purpose of freeing the user
  17680. from low-level concerns and reducing the number of bugs in numerical code.")
  17681. (license license:boost1.0))))
  17682. (define-public cl-lla
  17683. (sbcl-package->cl-source-package sbcl-lla))
  17684. (define-public ecl-lla
  17685. (sbcl-package->ecl-package sbcl-lla))
  17686. (define-public sbcl-cl-rmath
  17687. (let ((commit "f6add1edda31547691d08e36ccf6c17305161aca")
  17688. (revision "1"))
  17689. (package
  17690. (name "sbcl-cl-rmath")
  17691. (version (git-version "0.0.1" revision commit))
  17692. (source
  17693. (origin
  17694. (method git-fetch)
  17695. (uri (git-reference
  17696. (url "https://github.com/tpapp/cl-rmath")
  17697. (commit commit)))
  17698. (file-name (git-file-name "cl-rmath" version))
  17699. (sha256
  17700. (base32 "1ld8vbpy10paymx2hn0mcgd21i7cjhdrayln1jx0kayqxm12mmk4"))))
  17701. (build-system asdf-build-system/sbcl)
  17702. (arguments
  17703. `(#:phases
  17704. (modify-phases %standard-phases
  17705. (add-after 'unpack 'fix-paths
  17706. (lambda* (#:key inputs #:allow-other-keys)
  17707. (substitute* "cl-rmath.lisp"
  17708. (("\\(cffi:define-foreign-library librmath" all)
  17709. (string-append all "\n"
  17710. " (:unix \""
  17711. (assoc-ref inputs "librmath")
  17712. "/lib/libRmath.so\")"))))))))
  17713. (inputs
  17714. `(("cffi" ,sbcl-cffi)
  17715. ("librmath" ,rmath-standalone)))
  17716. (home-page "https://github.com/tpapp/cl-rmath")
  17717. (synopsis "Common Lisp wrapper for libRmath")
  17718. (description
  17719. "@code{cl-rmath} is a simple, autogenerated foreign interface for the
  17720. standalone R API @code{libRmath}. There has been no effort to provide a
  17721. high-level interface for the original library, instead, this library is meant
  17722. to serve as a building block for such an interface.")
  17723. (license license:boost1.0))))
  17724. (define-public cl-rmath
  17725. (sbcl-package->cl-source-package sbcl-cl-rmath))
  17726. (define-public ecl-cl-rmath
  17727. (sbcl-package->ecl-package sbcl-cl-rmath))
  17728. (define-public sbcl-cl-random
  17729. (let ((commit "5bb65911037f95a4260bd29a594a09df3849f4ea")
  17730. (revision "1"))
  17731. (package
  17732. (name "sbcl-cl-random")
  17733. (version (git-version "0.0.1" revision commit))
  17734. (source
  17735. (origin
  17736. (method git-fetch)
  17737. (uri (git-reference
  17738. (url "https://github.com/tpapp/cl-random")
  17739. (commit commit)))
  17740. (file-name (git-file-name "cl-random" version))
  17741. (sha256
  17742. (base32 "0jn80xphyvyp2v72acr6b8a2f6dw06myr5vrjfl14brsvks7wr89"))))
  17743. (build-system asdf-build-system/sbcl)
  17744. (inputs
  17745. (list sbcl-alexandria
  17746. sbcl-anaphora
  17747. sbcl-array-operations
  17748. sbcl-cl-num-utils
  17749. sbcl-cl-rmath
  17750. sbcl-cl-slice
  17751. sbcl-gsll
  17752. sbcl-let-plus
  17753. sbcl-lla))
  17754. (native-inputs
  17755. (list sbcl-clunit))
  17756. (home-page "https://github.com/tpapp/cl-random")
  17757. (synopsis "Random variates for Common Lisp")
  17758. (description
  17759. "@code{cl-random} is a library for generating random draws from various
  17760. commonly used distributions, and for calculating statistical functions, such as
  17761. density, distribution and quantiles for these distributions.")
  17762. (license license:expat))))
  17763. (define-public cl-random
  17764. (sbcl-package->cl-source-package sbcl-cl-random))
  17765. (define-public ecl-cl-random
  17766. (sbcl-package->ecl-package sbcl-cl-random))
  17767. (define-public sbcl-mgl-gpr
  17768. (let ((commit "cb6ce51e2f87bf1d589f3703c13eea6e25780afe")
  17769. (revision "1"))
  17770. (package
  17771. (name "sbcl-mgl-gpr")
  17772. (version (git-version "0.0.1" revision commit))
  17773. (source
  17774. (origin
  17775. (method git-fetch)
  17776. (uri (git-reference
  17777. (url "https://github.com/melisgl/mgl-gpr")
  17778. (commit commit)))
  17779. (file-name (git-file-name "cl-mgl-gpr" version))
  17780. (sha256
  17781. (base32 "0w51dqixh277k6sl8bqvvp1400y6kd1l5h3d9q2f40l9bpxy8gjx"))))
  17782. (build-system asdf-build-system/sbcl)
  17783. (inputs
  17784. (list sbcl-cl-random sbcl-mgl-pax))
  17785. (home-page "https://melisgl.github.io/mgl-gpr/")
  17786. (synopsis "Common Lisp library of evolutionary algorithms")
  17787. (description
  17788. "@code{MGL-GPR} is a library of evolutionary algorithms such as
  17789. Genetic Programming (evolving typed expressions from a set of operators and
  17790. constants) and Differential Evolution.")
  17791. (license license:expat))))
  17792. (define-public cl-mgl-gpr
  17793. (sbcl-package->cl-source-package sbcl-mgl-gpr))
  17794. (define-public ecl-mgl-gpr
  17795. (sbcl-package->ecl-package sbcl-mgl-gpr))
  17796. (define-public sbcl-cl-tld
  17797. ;; No release.
  17798. (let ((commit "f5014da8d831fa9481d4181d4450f10a52850c75"))
  17799. (package
  17800. (name "sbcl-cl-tld")
  17801. (version (git-version "0.1" "2" commit))
  17802. (source
  17803. (origin
  17804. (method git-fetch)
  17805. (uri (git-reference
  17806. (url "https://github.com/lu4nx/cl-tld")
  17807. (commit commit)))
  17808. (file-name (git-file-name name version))
  17809. (sha256
  17810. (base32 "0sxnn35gzdby1ixil6zbjg72vli9fcspwzsqimqk455310syx9iv"))))
  17811. (build-system asdf-build-system/sbcl)
  17812. (home-page "https://github.com/lu4nx/cl-tld/")
  17813. (synopsis "Extract the Top Level Domain from domains, in Common Lisp")
  17814. (description
  17815. "This library extracts the TLD (Top Level Domain) from domains. The
  17816. information is taken from @url{https://publicsuffix.org}.")
  17817. (license license:public-domain))))
  17818. (define-public cl-tld
  17819. (sbcl-package->cl-source-package sbcl-cl-tld))
  17820. (define-public ecl-cl-tld
  17821. (sbcl-package->ecl-package sbcl-cl-tld))
  17822. (define-public sbcl-cl-strftime
  17823. ;; No release.
  17824. (let ((commit "21cb57f2595faa26d687893963f24ec41822b63c"))
  17825. (package
  17826. (name "sbcl-cl-strftime")
  17827. (version (git-version "0.0.0" "1" commit))
  17828. (source
  17829. (origin
  17830. (method git-fetch)
  17831. (uri (git-reference
  17832. (url "https://github.com/ruricolist/cl-strftime/")
  17833. (commit commit)))
  17834. (file-name (git-file-name name version))
  17835. (sha256
  17836. (base32 "00c8hq7vzgb89ab3q7mrp60x743kiqmsk1g51ynhxlqhph2bnslf"))))
  17837. (build-system asdf-build-system/sbcl)
  17838. (inputs
  17839. (list sbcl-alexandria sbcl-local-time sbcl-cl-ppcre sbcl-serapeum))
  17840. (native-inputs
  17841. (list sbcl-fiveam sbcl-cffi))
  17842. (home-page "https://github.com/ruricolist/cl-strftime")
  17843. (synopsis "Common Lisp compiler for the strftime language")
  17844. (description
  17845. "CL-STRFTIME is a Common Lisp compiler for the strftime “language.”")
  17846. (license license:expat))))
  17847. (define-public cl-strftime
  17848. (sbcl-package->cl-source-package sbcl-cl-strftime))
  17849. (define-public ecl-cl-strftime
  17850. (sbcl-package->ecl-package sbcl-cl-strftime))
  17851. (define-public sbcl-exit-hooks
  17852. ;; No release.
  17853. (let ((commit "78050f4f55c138fcea86a9d720928782021b6012"))
  17854. (package
  17855. (name "sbcl-exit-hooks")
  17856. (version (git-version "0.0.0" "1" commit))
  17857. (source
  17858. (origin
  17859. (method git-fetch)
  17860. (uri (git-reference
  17861. (url "https://github.com/ailisp/exit-hooks/")
  17862. (commit commit)))
  17863. (file-name (git-file-name name version))
  17864. (sha256
  17865. (base32 "00rk0pr2cy3hy6giblh166b7yrg06d5lanipjcqv508gkfb0vi47"))))
  17866. (build-system asdf-build-system/sbcl)
  17867. (home-page "https://github.com/ailisp/exit-hooks")
  17868. (synopsis "Call functions automatically when Common Lisp exits")
  17869. (description
  17870. "@code{exit-hooks} provides a portable way to automatically call some
  17871. user-defined function when exiting Common Lisp (both @code{quit} from the REPL
  17872. or a kill in a shell). Like @code{atexit} in C and Python or Java’s
  17873. @code{Runtime.addShutdownHook()}. It currently supports SBCL, CCL, ECL, ABCL,
  17874. Allegro CL, clisp and CMUCL. Before exit-hooks, there was no portable way of
  17875. doing so and no staightforward way to use an exit hook on ABCL. It can be used
  17876. for tasks like parmenantly save something when exiting Lisp.")
  17877. (license license:bsd-2))))
  17878. (define-public cl-exit-hooks
  17879. (sbcl-package->cl-source-package sbcl-exit-hooks))
  17880. (define-public ecl-exit-hooks
  17881. (sbcl-package->ecl-package sbcl-exit-hooks))
  17882. (define-public sbcl-cl-base58
  17883. (let ((commit "f446835b4104896e0eed6a61d2ceb4ad22f589d8")
  17884. (revision "1"))
  17885. (package
  17886. (name "sbcl-cl-base58")
  17887. (version (git-version "0.1" revision commit))
  17888. (source
  17889. (origin
  17890. (method git-fetch)
  17891. (uri (git-reference
  17892. (url "https://github.com/eudoxia0/cl-base58/")
  17893. (commit commit)))
  17894. (file-name (git-file-name "cl-base58" version))
  17895. (sha256
  17896. (base32 "01wiiyz1jzxx3zhxi2hpq5n8hv28g1mn0adk793vwjzh4v5bi5zz"))))
  17897. (build-system asdf-build-system/sbcl)
  17898. (arguments
  17899. '(#:asd-systems '("cl-base58-test" "cl-base58")
  17900. #:phases
  17901. (modify-phases %standard-phases
  17902. (add-after 'unpack 'fix-tests
  17903. (lambda _
  17904. (substitute* "cl-base58-test.asd"
  17905. (("cl-test-more")
  17906. "prove"))
  17907. #t)))))
  17908. (native-inputs
  17909. (list sbcl-prove))
  17910. (home-page "https://github.com/eudoxia0/cl-base58")
  17911. (synopsis "Implementation of base58 for Common Lisp")
  17912. (description
  17913. "This library implements the @code{base58} encoding algorithm. It's
  17914. basically @code{base64} but with a smaller alphabet (58, as in the name) that
  17915. doesn't include similar looking characters, among other things. See
  17916. @url{https://github.com/bitcoin/bitcoin/blob/master/src/base58.h} for a full
  17917. reference.")
  17918. (license license:expat))))
  17919. (define-public cl-base58
  17920. (sbcl-package->cl-source-package sbcl-cl-base58))
  17921. (define-public ecl-cl-base58
  17922. (sbcl-package->ecl-package sbcl-cl-base58))
  17923. (define-public sbcl-bit-smasher
  17924. ;; No release.
  17925. (let ((commit "c2dcb3b5ec0e485484be681fe17c4e81e58790d9"))
  17926. (package
  17927. (name "sbcl-bit-smasher")
  17928. (version (git-version "1.0.2" "1" commit))
  17929. (source
  17930. (origin
  17931. (method git-fetch)
  17932. (uri (git-reference
  17933. (url "https://github.com/thephoeron/bit-smasher/")
  17934. (commit commit)))
  17935. (file-name (git-file-name name version))
  17936. (sha256
  17937. (base32 "0wjmwn06fjpw0rlpaksf3ab727p8fnzj58z7jajl3m0wqd4ii74w"))))
  17938. (build-system asdf-build-system/sbcl)
  17939. (inputs
  17940. `(("cl-base64" ,sbcl-cl-base64)
  17941. ("cl-base58" ,sbcl-cl-base58)))
  17942. ;; Load order matters for tests, both for file reading and evaluation.
  17943. (arguments
  17944. `(#:asd-systems '("bit-smasher-test" "bit-smasher")
  17945. #:asd-files '("bit-smasher.asd" "bit-smasher-test.asd")))
  17946. (home-page "https://github.com/thephoeron/bit-smasher/")
  17947. (synopsis "Handle bit vectors, bit vector arithmetic, and type conversions")
  17948. (description
  17949. "Utility library for handling bit vectors, bit vector arithmetic, and
  17950. universal integer type conversions between bit-vectors, byte-vectors, octals,
  17951. decimals, and hexadecimal notation.")
  17952. (license license:expat))))
  17953. (define-public cl-bit-smasher
  17954. (sbcl-package->cl-source-package sbcl-bit-smasher))
  17955. (define-public ecl-bit-smasher
  17956. (sbcl-package->ecl-package sbcl-bit-smasher))
  17957. (define-public sbcl-overlord
  17958. ;; No release.
  17959. (let ((commit "a8f37b321a8aae1652fc50b78e74e57c771cc763"))
  17960. (package
  17961. (name "sbcl-overlord")
  17962. (version (git-version "0.0.0" "1" commit))
  17963. (source
  17964. (origin
  17965. (method git-fetch)
  17966. (uri (git-reference
  17967. (url "https://github.com/ruricolist/overlord/")
  17968. (commit commit)))
  17969. (file-name (git-file-name name version))
  17970. (sha256
  17971. (base32 "1maqm53yhlhaa3cka8xcc4sq24ifrr4y3y0s5dyyn682xsh14hb4"))))
  17972. (build-system asdf-build-system/sbcl)
  17973. (inputs
  17974. `(("babel" ,sbcl-babel)
  17975. ("bit-smasher" ,sbcl-bit-smasher)
  17976. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  17977. ("cl-strftime" ,sbcl-cl-strftime)
  17978. ("cmd" ,sbcl-cmd)
  17979. ("drakma" ,sbcl-drakma)
  17980. ("exit-hooks" ,sbcl-exit-hooks)
  17981. ("fset" ,sbcl-fset)
  17982. ("local-time" ,sbcl-local-time)
  17983. ("lparallel" ,sbcl-lparallel)
  17984. ("md5" ,sbcl-md5)
  17985. ("murmurhash" ,sbcl-cl-murmurhash)
  17986. ("named-readtables" ,sbcl-named-readtables)
  17987. ("ppcre" ,sbcl-cl-ppcre)
  17988. ("serapeum" ,sbcl-serapeum)
  17989. ("trivia" ,sbcl-trivia)
  17990. ("trivial-file-size" ,sbcl-trivial-file-size)))
  17991. (propagated-inputs
  17992. `(("quickproject" ,sbcl-quickproject)))
  17993. (native-inputs
  17994. (list sbcl-fiveam))
  17995. (arguments
  17996. `(#:asd-files '("overlord.asd")
  17997. #:phases
  17998. (modify-phases %standard-phases
  17999. (add-after 'unpack 'include-overlord/net
  18000. (lambda _
  18001. (substitute* "all.lisp"
  18002. (("\\(:import-from :overlord/kernel :nproc\\)")
  18003. (string-append
  18004. "(:import-from :overlord/kernel :nproc)"
  18005. "\n"
  18006. "(:import-from :overlord/net)")))
  18007. #t)))))
  18008. (home-page "https://github.com/ruricolist/overlord")
  18009. (synopsis "Build system in Common Lisp")
  18010. (description
  18011. "Overlord is a build system in Common Lisp. It is a real build system,
  18012. with all the modern features: rules with multiple outputs, parallel builds,
  18013. immunity to clock issues, and dynamic dependencies.
  18014. But Overlord is more than another build system. Overlord is a uniform
  18015. approach to dependencies inside or outside of a Lisp image. Overlord is to
  18016. Make what Lisp macros are to C macros.
  18017. Overlord is designed to be used from the Lisp REPL. A command line interface
  18018. is available in a separate repository. See
  18019. @url{https://github.com/ruricolist/overlord-cli}.")
  18020. (license license:expat))))
  18021. (define-public cl-overlord
  18022. (sbcl-package->cl-source-package sbcl-overlord))
  18023. ;; FIXME: Broken on ECL? https://github.com/ruricolist/overlord/issues/25
  18024. ;; (define-public ecl-overlord
  18025. ;; (sbcl-package->ecl-package sbcl-overlord))
  18026. (define-public sbcl-xpath
  18027. ;; No release.
  18028. (let ((commit "d364da693a534e23bd5eb3a85420e9c25e6c75b3"))
  18029. (package
  18030. (name "sbcl-xpath")
  18031. (version (git-version "0.1" "1" commit))
  18032. (source
  18033. (origin
  18034. (method git-fetch)
  18035. (uri (git-reference
  18036. (url "https://github.com/sharplispers/xpath/")
  18037. (commit commit)))
  18038. (file-name (git-file-name name version))
  18039. (sha256
  18040. (base32 "1fb03fgnzrvh22lw1jdg04pmyja5fib5n42rzwp5mhr829yvxkvp"))))
  18041. (build-system asdf-build-system/sbcl)
  18042. (inputs
  18043. (list sbcl-cxml sbcl-parse-number sbcl-cl-ppcre sbcl-cl-yacc))
  18044. (home-page "https://github.com/sharplispers/xpath/")
  18045. (synopsis "Implementation of the XML Path Language (XPath) Version 1.0")
  18046. (description
  18047. "This library is an implementation of the XML Path Language (XPath)
  18048. Version 1.0.")
  18049. (license license:bsd-2))))
  18050. ;; According to
  18051. ;; https://github.com/sharplispers/xpath/blob/master/doc/index.xml ECL is not
  18052. ;; supported.
  18053. (define-public cl-xpath
  18054. (sbcl-package->cl-source-package sbcl-xpath))
  18055. (define-public sbcl-fxml
  18056. ;; No release.
  18057. (let ((commit "a0e73bb48ef03adea94a55986cc27f522074c8e1"))
  18058. (package
  18059. (name "sbcl-fxml")
  18060. (version (git-version "0.0.0" "1" commit))
  18061. (source
  18062. (origin
  18063. (method git-fetch)
  18064. (uri (git-reference
  18065. (url "https://github.com/ruricolist/fxml/")
  18066. (commit commit)))
  18067. (file-name (git-file-name name version))
  18068. (sha256
  18069. (base32 "1vxdb1cjjqi986f72bggnw1s4yzv12g4li7vn4y49b6lphshr8lm"))))
  18070. (build-system asdf-build-system/sbcl)
  18071. (inputs
  18072. (list sbcl-babel
  18073. sbcl-named-readtables
  18074. sbcl-serapeum
  18075. sbcl-quri
  18076. sbcl-flexi-streams
  18077. sbcl-split-sequence
  18078. sbcl-alexandria
  18079. sbcl-trivial-gray-streams))
  18080. (native-inputs
  18081. (list sbcl-fiveam sbcl-cxml sbcl-cxml-rng sbcl-xpath))
  18082. (home-page "https://github.com/ruricolist/fxml")
  18083. (synopsis "XML parser and serializer in Common Lisp")
  18084. (description
  18085. "FXML is a secure-by-default, error-recovering XML parser and serializer.
  18086. It is a fork of CXML.
  18087. You should use FXML instead of CXML if:
  18088. @itemize
  18089. @item You are parsing potentially ill-formed XML.
  18090. @item You are parsing potentially malicious XML.
  18091. @item You need to use Klacks with namespaces.
  18092. @end itemize
  18093. FXML’s API is very close to CXML's, and for the most part you can refer to the
  18094. CXML documentation for usage.")
  18095. (license license:llgpl))))
  18096. (define-public cl-fxml
  18097. (sbcl-package->cl-source-package sbcl-fxml))
  18098. (define-public sbcl-vernacular
  18099. ;; No release.
  18100. (let ((commit "79be179e9ada423b3ec41d2a1ea6f6e0266ed21f"))
  18101. (package
  18102. (name "sbcl-vernacular")
  18103. (version (git-version "0.8.0" "1" commit))
  18104. (source
  18105. (origin
  18106. (method git-fetch)
  18107. (uri (git-reference
  18108. (url "https://github.com/ruricolist/vernacular/")
  18109. (commit commit)))
  18110. (file-name (git-file-name name version))
  18111. (sha256
  18112. (base32 "19vzn28hw4is4sgmvzqin18ds89s0pai21vcm0ky10vmfv6wg745"))
  18113. (modules '((guix build utils)))
  18114. (snippet
  18115. '(begin
  18116. ;; The demo depends on cl-js, which we don't have at this point.
  18117. (delete-file-recursively "demo")
  18118. #t))))
  18119. (build-system asdf-build-system/sbcl)
  18120. (inputs
  18121. `(("overlord" ,sbcl-overlord)
  18122. ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)
  18123. ("local-time" ,sbcl-local-time)
  18124. ("parse-js" ,sbcl-parse-js)
  18125. ("trivia" ,sbcl-trivia)
  18126. ("trivial-garbage" ,sbcl-trivial-garbage)
  18127. ("named-readtables" ,sbcl-named-readtables)
  18128. ("alexandria" ,sbcl-alexandria)
  18129. ("serapeum" ,sbcl-serapeum)
  18130. ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
  18131. (arguments
  18132. ;; Circular dependency: Tests depend on core-lisp
  18133. ;; (http://github.com/ruricolist/core-lisp) which depends on
  18134. ;; Vernacular.
  18135. '(#:tests? #f))
  18136. (home-page "https://github.com/ruricolist/vernacular")
  18137. (synopsis "Module system for languages that compile to Common Lisp")
  18138. (description
  18139. "Vernacular is a build and module system for languages that compile to
  18140. Common Lisp. It allows languages to compile to Lisp while remaining part of
  18141. the Common Lisp ecosystem. Vernacular languages interoperate with Common Lisp
  18142. and one another.
  18143. Vernacular handles locating files, compiling files into FASLs, tracking
  18144. dependencies and rebuilding, and export and import between your new language,
  18145. Lisp, and any other language Vernacular supports.
  18146. Vernacular builds on Overlord and is inspired by Racket.")
  18147. (license license:expat))))
  18148. (define-public cl-vernacular
  18149. (sbcl-package->cl-source-package sbcl-vernacular))
  18150. (define-public sbcl-cmn
  18151. (package
  18152. (name "sbcl-cmn")
  18153. (version "2021.11.22")
  18154. (source
  18155. (origin
  18156. (method url-fetch)
  18157. (uri "https://ccrma.stanford.edu/software/cmn/cmn.tar.gz")
  18158. (file-name (string-append "cmn-" version ".tar.gz"))
  18159. (sha256
  18160. (base32 "04j1l57cdyfi2zzxqwmvmf1hl899ffgs3bl4r42ba47zsw45kq14"))))
  18161. (build-system asdf-build-system/sbcl)
  18162. (home-page "https://ccrma.stanford.edu/software/cmn/")
  18163. (synopsis "Western music notation package written in Common Lisp")
  18164. (description
  18165. "CMN provides a package of functions to hierarchically describe a musical
  18166. score. When evaluated, the musical score is rendered to an image.")
  18167. (license license:expat)))
  18168. (define-public cl-cmn
  18169. (sbcl-package->cl-source-package sbcl-cmn))
  18170. (define-public ecl-cmn
  18171. (sbcl-package->ecl-package sbcl-cmn))
  18172. (define-public sbcl-core-gp
  18173. (let ((commit "90ec1c4599a19c5a911be1f703f78d5108aee160")
  18174. (revision "1"))
  18175. (package
  18176. (name "sbcl-core-gp")
  18177. (version (git-version "0.1" revision commit))
  18178. (source
  18179. (origin
  18180. (method git-fetch)
  18181. (uri (git-reference
  18182. (url "https://github.com/jorgetavares/core-gp")
  18183. (commit commit)))
  18184. (file-name (git-file-name "cl-core-gp" version))
  18185. (sha256
  18186. (base32 "0nzlb2gwqisa1amlpl4zc5xxph2g3qwhfyaxchci67d31rzws6l3"))))
  18187. (build-system asdf-build-system/sbcl)
  18188. (home-page "https://github.com/jorgetavares/core-gp")
  18189. (synopsis "Common Lisp library for genetic programming")
  18190. (description
  18191. "@code{core-gp} is a Common Lisp library for genetic programming (GP)
  18192. algorithms. It allows standard GP, strongly-typed GP, grammatical evolution as
  18193. well as standard genetic algorithms.")
  18194. (license license:expat))))
  18195. (define-public cl-core-gp
  18196. (sbcl-package->cl-source-package sbcl-core-gp))
  18197. (define-public ecl-core-gp
  18198. (sbcl-package->ecl-package sbcl-core-gp))
  18199. (define-public sbcl-data-sift
  18200. (let ((commit "fd617d8200cdcc1b87ecf45ab59bb38e8b16ef7e")
  18201. (revision "1"))
  18202. (package
  18203. (name "sbcl-data-sift")
  18204. (version (git-version "0.0.0" revision commit))
  18205. (source
  18206. (origin
  18207. (method git-fetch)
  18208. (uri (git-reference
  18209. (url "https://github.com/archimag/data-sift")
  18210. (commit commit)))
  18211. (file-name (git-file-name "cl-data-sift" version))
  18212. (sha256
  18213. (base32 "1v7gf0x4ibjzp0c56n9m77hxdgwcm9356zlk5n4l3fx4i0hj6146"))))
  18214. (build-system asdf-build-system/sbcl)
  18215. (arguments
  18216. ;; All test cases test a function that has been removed.
  18217. `(#:tests? #f))
  18218. (inputs
  18219. `(("alexandria" ,sbcl-alexandria)
  18220. ("cl-ppcre" ,sbcl-cl-ppcre)
  18221. ("parse-number" ,sbcl-parse-number)
  18222. ("puri" ,sbcl-puri)))
  18223. (native-inputs
  18224. (list sbcl-lift))
  18225. (home-page "https://github.com/archimag/data-sift")
  18226. (synopsis
  18227. "Common Lisp library for validation and transformation of string data")
  18228. (description
  18229. "@code{DATA-SIFT} is a Common Lisp data validation and transformation
  18230. library inspired by @code{cl-data-format-validation} and WTForms validators.")
  18231. (license license:llgpl))))
  18232. (define-public cl-data-sift
  18233. (sbcl-package->cl-source-package sbcl-data-sift))
  18234. (define-public ecl-data-sift
  18235. (sbcl-package->ecl-package sbcl-data-sift))
  18236. (define-public sbcl-restas
  18237. (let ((commit "81bbbab6b36f81f846f78e71232e9d3d15f6d952")
  18238. (revision "1"))
  18239. (package
  18240. (name "sbcl-restas")
  18241. (version (git-version "0.1.4" revision commit))
  18242. (source
  18243. (origin
  18244. (method git-fetch)
  18245. (uri (git-reference
  18246. (url "https://github.com/archimag/restas")
  18247. (commit commit)))
  18248. (file-name (git-file-name "cl-restas" version))
  18249. (sha256
  18250. (base32 "00ng6jik1lwjw3bbxhijy8s0ml24lgm73liwrr01gcsb0r6wrjjn"))))
  18251. (build-system asdf-build-system/sbcl)
  18252. (arguments
  18253. '(#:phases
  18254. (modify-phases %standard-phases
  18255. (add-after 'unpack 'fix-paths
  18256. (lambda* (#:key inputs #:allow-other-keys)
  18257. (substitute* "contrib/restas-daemon.lisp"
  18258. (("/lib64/") "")
  18259. (("/lib/") "")
  18260. (("libcap.so")
  18261. (string-append (assoc-ref inputs "libcap")
  18262. "/lib/libcap.so"))))))))
  18263. (inputs
  18264. `(("alexandria" ,sbcl-alexandria)
  18265. ("bordeaux-threads" ,sbcl-bordeaux-threads)
  18266. ("cffi" ,sbcl-cffi)
  18267. ("data-sift" ,sbcl-data-sift)
  18268. ("hunchentoot" ,sbcl-hunchentoot)
  18269. ("libcap" ,libcap)
  18270. ("routes" ,sbcl-routes)))
  18271. (home-page "https://github.com/archimag/restas")
  18272. (synopsis "Common Lisp web framework")
  18273. (description "@code{RESTAS} is a Common Lisp web application framework.")
  18274. (license license:llgpl))))
  18275. (define-public cl-restas
  18276. (sbcl-package->cl-source-package sbcl-restas))
  18277. (define-public ecl-restas
  18278. (sbcl-package->ecl-package sbcl-restas))
  18279. (define-public sbcl-zsort
  18280. (let ((commit "f6724a6fff7662a942195cedb0d7f00da59c74ed")
  18281. (revision "1"))
  18282. (package
  18283. (name "sbcl-zsort")
  18284. (version (git-version "0.1" revision commit))
  18285. (source
  18286. (origin
  18287. (method git-fetch)
  18288. (uri (git-reference
  18289. (url "https://github.com/jorgetavares/zsort")
  18290. (commit commit)))
  18291. (file-name (git-file-name "cl-zsort" version))
  18292. (sha256
  18293. (base32 "1vyklyh99712zsll4qi0m4mm8yb1nz04403vl8i57bjv5p5max49"))))
  18294. (build-system asdf-build-system/sbcl)
  18295. (inputs
  18296. (list sbcl-alexandria))
  18297. (home-page "https://github.com/jorgetavares/zsort")
  18298. (synopsis "Collection of portable sorting algorithms in Common Lisp")
  18299. (description
  18300. "@code{zsort} is a collection of portable sorting algorithms. Common
  18301. Lisp provides the @code{sort} and @code{stable-sort} functions but these can
  18302. have different algorithms implemented according to each implementation. Also,
  18303. the standard sorting functions might not be the best for a certain situations.
  18304. This library aims to provide developers with more options.")
  18305. (license license:expat))))
  18306. (define-public cl-zsort
  18307. (sbcl-package->cl-source-package sbcl-zsort))
  18308. (define-public ecl-zsort
  18309. (sbcl-package->ecl-package sbcl-zsort))
  18310. (define-public sbcl-cl-https-everywhere
  18311. ;; No release.
  18312. ;; Don't forget to update the https-everywhere input.
  18313. (let ((commit "cbcc73b985a5b1c0ce0d4ec38bc982a0538d4bd8"))
  18314. (package
  18315. (name "sbcl-cl-https-everywhere")
  18316. (version (git-version "0.0.0" "1" commit))
  18317. (source
  18318. (origin
  18319. (method git-fetch)
  18320. (uri (git-reference
  18321. (url "https://github.com/ruricolist/cl-https-everywhere/")
  18322. (commit commit)))
  18323. (file-name (git-file-name name version))
  18324. (sha256
  18325. (base32 "1wcvx1icwym1ncd6wl1wxzkyyndrm796caalbklvjd4a2cbl3xxi"))))
  18326. (build-system asdf-build-system/sbcl)
  18327. (inputs
  18328. `(("alexandria" ,sbcl-alexandria)
  18329. ("global-vars" ,sbcl-global-vars)
  18330. ("parenscript" ,sbcl-parenscript)
  18331. ("cl-markdown" ,sbcl-cl-markdown)
  18332. ("cl-tld" ,sbcl-cl-tld)
  18333. ("fxml" ,sbcl-fxml)
  18334. ("overlord" ,sbcl-overlord)
  18335. ("ppcre" ,sbcl-cl-ppcre)
  18336. ("serapeum" ,sbcl-serapeum)
  18337. ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
  18338. ("vernacular" ,sbcl-vernacular)))
  18339. (native-inputs
  18340. `(("fiveam" ,sbcl-fiveam)
  18341. ("https-everywhere"
  18342. ,(let ((version "2021.7.13"))
  18343. (origin
  18344. (method git-fetch)
  18345. (uri (git-reference
  18346. (url "https://github.com/EFForg/https-everywhere")
  18347. (commit version)))
  18348. (file-name (git-file-name "https-everywhere" version))
  18349. (sha256
  18350. (base32
  18351. "1k5gj29imhxf47sv3d8rxyrgr6k65scp2fm040va3nfshayslzia")))))))
  18352. (arguments
  18353. `(#:phases
  18354. (modify-phases %standard-phases
  18355. (add-after 'unpack 'link-https-everywhere-repo
  18356. (lambda* (#:key inputs #:allow-other-keys)
  18357. (let ((https-everywhere (assoc-ref inputs "https-everywhere")))
  18358. (symlink https-everywhere "https-everywhere"))))
  18359. (add-after 'unpack 'fix-overlord-build
  18360. ;; Upstream bugs? See
  18361. ;; https://github.com/ruricolist/cl-https-everywhere/issues/1.
  18362. (lambda* (#:key outputs #:allow-other-keys)
  18363. (let* ((out (assoc-ref outputs "out"))
  18364. (rulesets.xml (string-append out "/share/common-lisp/" (%lisp-type)
  18365. "/cl-https-everywhere/rulesets.xml")))
  18366. (substitute* "build.lisp"
  18367. (("\\(depends-on https-everywhere-version\\)") "")
  18368. ;; Don't rebuild the rulesets just because the timestamp is epoch.
  18369. (("\\(vernacular:require-default :cl-https-everywhere/rulesets-file \"rulesets.xml\"\\)")
  18370. (format #f "(if (uiop:file-exists-p ~s)
  18371. (compile-rulesets ~s)
  18372. (vernacular:require-default :cl-https-everywhere/rulesets-file \"rulesets.xml\"))"
  18373. rulesets.xml
  18374. rulesets.xml))
  18375. (("\\(uiop:parse-unix-namestring \"https-everywhere/src/chrome/content/rules/\\*\\.xml\")")
  18376. "\"https-everywhere/src/chrome/content/rules/*.xml\"")
  18377. (("\\(out temp :external-format :utf-8\\)")
  18378. "(out temp :external-format :utf-8 :if-exists :supersede)")))
  18379. #t)))))
  18380. (home-page "https://github.com/ruricolist/cl-https-everywhere/")
  18381. (synopsis "Use HTTPS Everywhere rules from Lisp")
  18382. (description
  18383. "CL-HTTPS-EVERYWHERE parses HTTPS Everywhere rulesets and makes them
  18384. available for use in Lisp programs.")
  18385. (license (list license:expat
  18386. ;; For the ruleset
  18387. license:gpl2+)))))
  18388. (define-public cl-https-everywhere
  18389. (sbcl-package->cl-source-package sbcl-cl-https-everywhere))
  18390. (define-public sbcl-magic-ed
  18391. (let ((commit "30bb27832d4e3e362578e7320934638f9889a8c4")
  18392. (revision "1"))
  18393. (package
  18394. (name "sbcl-magic-ed")
  18395. (version (git-version "0.2" revision commit))
  18396. (source
  18397. (origin
  18398. (method git-fetch)
  18399. (uri (git-reference
  18400. (url "https://github.com/sanel/magic-ed")
  18401. (commit commit)))
  18402. (file-name (git-file-name "cl-magic-ed" version))
  18403. (sha256
  18404. (base32 "1j6il4lif0dy6hqiz6n91yl8dvii9pk1i9vz0faq5mnr42mr7i5f"))))
  18405. (build-system asdf-build-system/sbcl)
  18406. (home-page "https://github.com/sanel/magic-ed")
  18407. (synopsis "Editing facility for Common Lisp REPL")
  18408. (description
  18409. "Magic (ed) is a tiny editing facility for Common Lisp, where you can
  18410. directly load, edit, manipulate and evaluate file or file content from REPL.
  18411. This package also can be a starting point for people who are not accustomed to
  18412. Emacs or SLIME and would like to continue using their default terminal/console
  18413. editor with Common Lisp.")
  18414. (license license:expat))))
  18415. (define-public cl-magic-ed
  18416. (sbcl-package->cl-source-package sbcl-magic-ed))
  18417. (define-public ecl-magic-ed
  18418. (sbcl-package->ecl-package sbcl-magic-ed))
  18419. (define-public sbcl-maxpc
  18420. (let ((commit "e5e58d053039517d30fd59ab2d128256b87790d5")
  18421. (revision "1"))
  18422. (package
  18423. (name "sbcl-maxpc")
  18424. (version (git-version "0.0.0" revision commit))
  18425. (source
  18426. (origin
  18427. (method git-fetch)
  18428. (uri (git-reference
  18429. (url "https://github.com/eugeneia/maxpc")
  18430. (commit commit)))
  18431. (file-name (git-file-name name version))
  18432. (sha256
  18433. (base32 "15wrjbr2js6j67c1dd4p2qxj49q9iqv1lhb7cwdcwpn79crr39gf"))))
  18434. (build-system asdf-build-system/sbcl)
  18435. (home-page "https://mr.gy/software/maxpc/api.html")
  18436. (synopsis
  18437. "Library for writing parsers and lexers based on combinatory parsing")
  18438. (description
  18439. "@emph{Max’s Parser Combinators} is a simple and pragmatic library for
  18440. writing parsers and lexers based on combinatory parsing. MaxPC is capable of
  18441. parsing deterministic, context-free languages, provides powerful tools for
  18442. parse tree transformation and error handling, and can operate on
  18443. @dfn{sequences} and @dfn{streams}. It supports unlimited backtracking, but
  18444. does not implement @url{http://pdos.csail.mit.edu/~baford/packrat/thesis/,
  18445. Packrat Parsing}. Instead, MaxPC achieves good performance through its
  18446. optimized primitives, and explicit separation of matching and capturing input.
  18447. In practice, MaxPC parsers perform better on typical computer languages—when
  18448. compared to Packrat parsers—at the expense of not producing linear-time
  18449. parsers.")
  18450. (license license:agpl3))))
  18451. (define-public cl-maxpc
  18452. (sbcl-package->cl-source-package sbcl-maxpc))
  18453. (define-public ecl-maxpc
  18454. (sbcl-package->ecl-package sbcl-maxpc))
  18455. (define-public sbcl-snakes
  18456. (let ((commit "8c7eae579bb24539dbd584a81a1049f3d3ff8bf8")
  18457. (revision "0"))
  18458. (package
  18459. (name "sbcl-snakes")
  18460. (version (git-version "0.0.0" revision commit))
  18461. (source
  18462. (origin
  18463. (method git-fetch)
  18464. (uri (git-reference
  18465. (url "https://github.com/BnMcGn/snakes")
  18466. (commit commit)))
  18467. (sha256
  18468. (base32 "1ibp919qcpm6kg67b507kpjzdlhpdjr7vkh9vabln3a75k8lnlsg"))
  18469. (file-name (git-file-name "cl-snakes" commit))))
  18470. (build-system asdf-build-system/sbcl)
  18471. (inputs
  18472. (list sbcl-alexandria
  18473. sbcl-cl-cont
  18474. sbcl-cl-utilities
  18475. sbcl-closer-mop
  18476. sbcl-fiveam
  18477. sbcl-iterate))
  18478. (home-page "https://github.com/BnMcGn/snakes")
  18479. (synopsis "Python-like generators for Common Lisp")
  18480. (description
  18481. "This package provides Python style generators for Common Lisp.
  18482. It also includes a port of itertools.")
  18483. (license license:asl2.0))))
  18484. (define-public cl-snakes
  18485. (sbcl-package->cl-source-package sbcl-snakes))
  18486. (define-public ecl-snakes
  18487. (sbcl-package->ecl-package sbcl-snakes))
  18488. (define-public sbcl-random-state
  18489. (let ((commit "c270d4f15e0b66ba9680ca8734a5de56959cb118")
  18490. (revision "1"))
  18491. (package
  18492. (name "sbcl-random-state")
  18493. (version (git-version "0.1.0" revision commit))
  18494. (source
  18495. (origin
  18496. (method git-fetch)
  18497. (uri (git-reference
  18498. (url "https://github.com/Shinmera/random-state")
  18499. (commit commit)))
  18500. (file-name (git-file-name "cl-random-state" version))
  18501. (sha256
  18502. (base32 "0r3bk6hqpr0qmpza93pknl8wpsd6y0yy9qg7vz751a7gzzww9vj6"))))
  18503. (build-system asdf-build-system/sbcl)
  18504. (inputs
  18505. (list sbcl-documentation-utils))
  18506. (home-page "https://shinmera.github.io/random-state/")
  18507. (synopsis "Portable random number generation")
  18508. (description
  18509. "This library is a collection of @dfn{pseudo random number generators}.
  18510. While Common Lisp does provide a @code{RANDOM} function, it does not allow the
  18511. user to pass an explicit @code{SEED}, nor to portably exchange the random
  18512. state between implementations. This can be a headache in cases like games,
  18513. where a controlled seeding process can be very useful.
  18514. For both curiosity and convenience, this library offers multiple algorithms to
  18515. generate random numbers, as well as a bunch of generally useful methods to
  18516. produce desired ranges.")
  18517. (license license:zlib))))
  18518. (define-public cl-random-state
  18519. (sbcl-package->cl-source-package sbcl-random-state))
  18520. (define-public ecl-random-state
  18521. (sbcl-package->ecl-package sbcl-random-state))
  18522. (define-public sbcl-decimals
  18523. (package
  18524. (name "sbcl-decimals")
  18525. (version "2021")
  18526. (source
  18527. (origin
  18528. (method git-fetch)
  18529. (uri (git-reference
  18530. (url "https://github.com/tlikonen/cl-decimals")
  18531. (commit version)))
  18532. (file-name (git-file-name "cl-decimals" version))
  18533. (sha256
  18534. (base32 "0wn5hq1pwd3wpjqqhpjzarcdk1q6416g8y447iaf55j5nbhlmbn6"))))
  18535. (build-system asdf-build-system/sbcl)
  18536. (home-page "https://github.com/tlikonen/cl-decimals")
  18537. (synopsis "Decimal number parser and formatting package for Common Lisp")
  18538. (description "This Common Lisp package offers functions for parsing and
  18539. formatting decimal numbers. The package's main interface are the functions
  18540. @code{parse-decimal-number} and @code{format-decimal-number}. The former is
  18541. for parsing strings for decimal numbers and the latter for pretty-printing
  18542. them as strings.")
  18543. (license license:cc0)))
  18544. (define-public cl-decimals
  18545. (sbcl-package->cl-source-package sbcl-decimals))
  18546. (define-public ecl-decimals
  18547. (sbcl-package->ecl-package sbcl-decimals))
  18548. (define-public sbcl-simple-date-time
  18549. (let ((commit "d6992afddedf67a8172a0120a1deac32afcaa2e8")
  18550. (revision "1"))
  18551. (package
  18552. (name "sbcl-simple-date-time")
  18553. (version (git-version "0.1.0" revision commit))
  18554. (source
  18555. (origin
  18556. (method git-fetch)
  18557. (uri (git-reference
  18558. (url "https://github.com/quek/simple-date-time")
  18559. (commit commit)))
  18560. (file-name (git-file-name "cl-simple-date-time" version))
  18561. (sha256
  18562. (base32 "06iwf13gcdyqhkzfkcsfdl8iqbdl44cx01c3fjsmhl0v1pp8h2m4"))))
  18563. (build-system asdf-build-system/sbcl)
  18564. (inputs
  18565. (list sbcl-cl-ppcre))
  18566. (home-page "https://github.com/quek/simple-date-time")
  18567. (synopsis "Date and time library for Common Lisp")
  18568. (description "This package is a simple date and time library.")
  18569. (license license:bsd-4))))
  18570. (define-public cl-simple-date-time
  18571. (sbcl-package->cl-source-package sbcl-simple-date-time))
  18572. (define-public ecl-simple-date-time
  18573. (sbcl-package->ecl-package sbcl-simple-date-time))
  18574. (define-public sbcl-april
  18575. (let ((commit "963e2d8e5575a7d430c1fba7adedd15cb23c4ce8")
  18576. (revision "1"))
  18577. (package
  18578. (name "sbcl-april")
  18579. (version (git-version "0.9.3" revision commit))
  18580. (source
  18581. (origin
  18582. (method git-fetch)
  18583. (uri (git-reference
  18584. (url "https://github.com/phantomics/april")
  18585. (commit commit)))
  18586. (file-name (git-file-name "cl-april" version))
  18587. (sha256
  18588. (base32 "0v27fpss1ayca2r47k0zpqa9a423a86pv8s2mlgc3g5s48lgcmj3"))
  18589. (modules '((guix build utils)))
  18590. (snippet '(begin
  18591. ;; Remove bundled Apache-relicensed MaxPC.
  18592. (delete-file-recursively "maxpc-apache")
  18593. ;; Ensure references are to upstream MaxPC.
  18594. (substitute* "vex/vex.asd"
  18595. (("maxpc-apache") "maxpc"))))))
  18596. (build-system asdf-build-system/sbcl)
  18597. (inputs
  18598. (list sbcl-alexandria
  18599. sbcl-array-operations
  18600. sbcl-maxpc
  18601. sbcl-cl-ppcre
  18602. sbcl-symbol-munger
  18603. sbcl-prove
  18604. sbcl-parse-number
  18605. sbcl-lparallel
  18606. sbcl-random-state
  18607. sbcl-decimals
  18608. sbcl-simple-date-time
  18609. sbcl-trivia))
  18610. (home-page "https://github.com/phantomics/april")
  18611. (synopsis "Array Programming Re-Imagined in Lisp")
  18612. (description
  18613. "April compiles a subset of the APL programming language into
  18614. Common Lisp. Leveraging Lisp's powerful macros and numeric processing
  18615. faculties, it brings APL's expressive potential to bear for Lisp developers.
  18616. Replace hundreds of lines of number-crunching code with a single line of
  18617. APL.")
  18618. (license license:asl2.0))))
  18619. (define-public cl-april
  18620. (sbcl-package->cl-source-package sbcl-april))
  18621. (define-public ecl-april
  18622. (sbcl-package->ecl-package sbcl-april))
  18623. (define-public sbcl-cl-sxml
  18624. (let ((commit "e5542b1d9bd6cee03ae27547d00660ccfbb60109")
  18625. (revision "1"))
  18626. (package
  18627. (name "sbcl-cl-sxml")
  18628. (version (git-version "0.0.0" revision commit))
  18629. (source
  18630. (origin
  18631. (method git-fetch)
  18632. (uri (git-reference
  18633. (url "https://github.com/eadmund/cl-sxml")
  18634. (commit commit)))
  18635. (file-name (git-file-name "cl-sxml" version))
  18636. (sha256
  18637. (base32 "1105s9whidq1lf0lli2wdhcfcs5gwzxa0h1x3izx4mp2p7psvciz"))))
  18638. (build-system asdf-build-system/sbcl)
  18639. (inputs (list sbcl-cxml))
  18640. (native-inputs
  18641. (list sbcl-fiveam
  18642. sbcl-flexi-streams))
  18643. (home-page "https://github.com/eadmund/cl-sxml")
  18644. (synopsis "SXML parsing for Common Lisp")
  18645. (description
  18646. "@code{CL-SXML} implements Oleg Kiselyov’s SXML, an S-expression-based
  18647. rendering of the XML Infoset.")
  18648. (license license:gpl3+))))
  18649. (define-public cl-sxml
  18650. (sbcl-package->cl-source-package sbcl-cl-sxml))
  18651. (define-public ecl-cl-sxml
  18652. (sbcl-package->ecl-package sbcl-cl-sxml))
  18653. (define-public sbcl-lorem-ipsum
  18654. (let ((commit "04a1839a03b53c954e799b9cf570ac915b032ce8")
  18655. (revision "0"))
  18656. (package
  18657. (name "sbcl-lorem-ipsum")
  18658. (version (git-version "1.0" revision commit))
  18659. (source
  18660. (origin
  18661. (method git-fetch)
  18662. (uri (git-reference
  18663. (url "https://github.com/phoe/lorem-ipsum")
  18664. (commit commit)))
  18665. (sha256
  18666. (base32 "1530qq0bk3xr25m77q96pbi1idnxdkax8cwmvq4ch03rfjy34j7n"))
  18667. (file-name (git-file-name "cl-lorem-ipsum" commit))))
  18668. (build-system asdf-build-system/sbcl)
  18669. (home-page "https://github.com/phoe/lorem-ipsum")
  18670. (synopsis "Lorem ipsum generator in portable Common Lisp")
  18671. (description
  18672. "This package provides functions for generating lorem ipsum text.")
  18673. (license license:expat))))
  18674. (define-public cl-lorem-ipsum
  18675. (sbcl-package->cl-source-package sbcl-lorem-ipsum))
  18676. (define-public ecl-lorem-ipsum
  18677. (sbcl-package->ecl-package sbcl-lorem-ipsum))
  18678. (define-public sbcl-asd-generator
  18679. (let ((commit "27f94971a7c68c4dcb51e3f6be4142743d0c44e8")
  18680. (revision "0"))
  18681. (package
  18682. (name "sbcl-asd-generator")
  18683. (version (git-version "1.0" revision commit))
  18684. (source
  18685. (origin
  18686. (method git-fetch)
  18687. (uri (git-reference
  18688. (url "https://github.com/phoe/asd-generator")
  18689. (commit commit)))
  18690. (sha256
  18691. (base32 "0yiybl7b9x1f85v0drj0yw9821y3yfhya4n6gycnv5vvx6jp9by4"))
  18692. (file-name (git-file-name "cl-asd-generator" commit))))
  18693. (build-system asdf-build-system/sbcl)
  18694. (arguments
  18695. `(#:asd-systems '("asd-generator")
  18696. #:asd-files '("asd-generator.asd")))
  18697. (inputs
  18698. (list sbcl-cl-fad
  18699. sbcl-iterate
  18700. sbcl-alexandria
  18701. sbcl-trivia))
  18702. (home-page "https://github.com/phoe/asd-generator")
  18703. (synopsis "Automatic generator for .asd files")
  18704. (description
  18705. "This package provides an automatic generator for ASDF's .asd files.")
  18706. (license license:gpl3+))))
  18707. (define-public cl-asd-generator
  18708. (sbcl-package->cl-source-package sbcl-asd-generator))
  18709. (define-public ecl-asd-generator
  18710. (sbcl-package->ecl-package sbcl-asd-generator))
  18711. (define-public sbcl-cl-gopher
  18712. (let ((commit "62cfd180378f56e7e8b57e4302b183810c86e337")
  18713. (revision "2"))
  18714. (package
  18715. (name "sbcl-cl-gopher")
  18716. (version (git-version "0.0.0" revision commit))
  18717. (source
  18718. (origin
  18719. (method git-fetch)
  18720. (uri (git-reference
  18721. (url "https://github.com/knusbaum/cl-gopher")
  18722. (commit commit)))
  18723. (file-name (git-file-name "cl-gopher" version))
  18724. (sha256
  18725. (base32 "0szz29d83fk2cxn5j1zlf4v0154qnf9cy1ix5p4jjpsql1a8xiwg"))))
  18726. (build-system asdf-build-system/sbcl)
  18727. (inputs
  18728. (list sbcl-bordeaux-threads
  18729. sbcl-drakma
  18730. sbcl-flexi-streams
  18731. sbcl-quri
  18732. sbcl-split-sequence
  18733. sbcl-usocket))
  18734. (home-page "https://github.com/knusbaum/cl-gopher")
  18735. (synopsis "Gopher protocol library in Common Lisp")
  18736. (description
  18737. "@code{cl-gopher} is a Common Lisp library for interacting with the
  18738. Gopher protocol.
  18739. It is suitable for building both clients and servers, and provides a sample
  18740. client.")
  18741. (license license:bsd-2))))
  18742. (define-public cl-gopher
  18743. (sbcl-package->cl-source-package sbcl-cl-gopher))
  18744. (define-public ecl-cl-gopher
  18745. (sbcl-package->ecl-package sbcl-cl-gopher))
  18746. (define-public sbcl-phos
  18747. (let ((commit "6620b82b091cdfed655e1093ef045dbe518d5474"))
  18748. (package
  18749. (name "sbcl-phos")
  18750. (version (git-version "0.0.1" "1" commit))
  18751. (source
  18752. (origin
  18753. (method git-fetch)
  18754. (uri (git-reference
  18755. (url "https://github.com/omar-polo/phos")
  18756. (commit commit)))
  18757. (file-name (git-file-name "phos" version))
  18758. (sha256
  18759. (base32
  18760. "1zwci86rkbaiix0w2gd5q6nr8v2vv945pkvwp0j240iyzd4hfxr3"))))
  18761. (build-system asdf-build-system/sbcl)
  18762. (inputs
  18763. (list sbcl-quri sbcl-cl-ppcre sbcl-trivia sbcl-usocket sbcl-cl+ssl
  18764. ;; For the experimental GUI:
  18765. sbcl-nodgui))
  18766. (native-inputs
  18767. (list sbcl-clunit2))
  18768. (home-page "https://github.com/omar-polo/phos")
  18769. (synopsis "Gemini client library and experimental GUI")
  18770. (description "This package contains a Gemini client library for Common
  18771. Lisp. A subsystem offers an experimental GUI Gemini client.")
  18772. (license license:isc))))
  18773. (define-public cl-phos
  18774. (sbcl-package->cl-source-package sbcl-phos))
  18775. (define-public ecl-phos
  18776. (sbcl-package->ecl-package sbcl-phos))
  18777. (define-public sbcl-css-lite
  18778. (let ((commit "6ee4e6212ed56943d665df163d2a834b122e6273")
  18779. (revision "0"))
  18780. (package
  18781. (name "sbcl-css-lite")
  18782. (version "0.01")
  18783. (source
  18784. (origin
  18785. (method git-fetch)
  18786. (uri (git-reference
  18787. (url "https://github.com/paddymul/css-lite")
  18788. (commit commit)))
  18789. (sha256
  18790. (base32 "1lyvw7hcy09k5qs6icky23s13psqxncyc73hdyiimb66p0jx6k0d"))
  18791. (file-name (git-file-name "cl-css-lite" commit))))
  18792. (build-system asdf-build-system/sbcl)
  18793. (home-page "https://github.com/paddymul/css-lite")
  18794. (synopsis "CSS grammar for Lisp")
  18795. (description
  18796. "@code{cl-css-lite} is a library for generating CSS from an s-exp based
  18797. syntax. When compiled with Parenscript loaded in the Lisp image, it
  18798. also provides the same CSS generation facilities in Parenscript-generated
  18799. JavaScript code.")
  18800. (license license:bsd-3))))
  18801. (define-public cl-css-lite
  18802. (sbcl-package->cl-source-package sbcl-css-lite))
  18803. (define-public ecl-css-lite
  18804. (sbcl-package->ecl-package sbcl-css-lite))
  18805. (define-public sbcl-nhooks
  18806. (package
  18807. (name "sbcl-nhooks")
  18808. (version "1.0.0")
  18809. (source
  18810. (origin
  18811. (method git-fetch)
  18812. (uri (git-reference
  18813. (url "https://github.com/atlas-engineer/nhooks")
  18814. (commit version)))
  18815. (file-name (git-file-name "nhooks" version))
  18816. (sha256
  18817. (base32
  18818. "1v3gh9jf4hbpl1hnyzhkrcj3jdh3q0mlp1n6ci2cbn2rsc65baff"))))
  18819. (build-system asdf-build-system/sbcl)
  18820. (inputs
  18821. (list sbcl-serapeum))
  18822. (native-inputs
  18823. (list sbcl-fiveam))
  18824. (home-page "https://github.com/atlas-engineer/nhooks")
  18825. (synopsis "Hook facility for Common Lisp")
  18826. (description "This package holds an enhanced implementation of
  18827. hooks (extension points). It works similarly to Emacs hooks with crucial
  18828. improvements:
  18829. @itemize
  18830. @item If the compiler allows it (such as SBCL), type-checking is performed at
  18831. compile-time and at run-time when adding handlers to a hook.
  18832. @item On failure, multiple restarts are offered, such as disabling the
  18833. offending handler or simply continuing to the next function.
  18834. @item The hook handler execution order and combination can be customized.
  18835. @item Anonymous functions (lambdas) can be added to hooks as handler objects.
  18836. When inspecting hooks, readable names are thus exposed instead of lambda
  18837. blackboxes. Handlers are compared through their names (through the mandatory
  18838. name slot). A hook can not contain multiple handlers with the same name.
  18839. @item A special provision is taken for “setters”, handlers that are meant to
  18840. set a given place to a given values. Such handler objects can be compared and
  18841. identified uniquely.
  18842. @end itemize\n")
  18843. (license license:expat)))
  18844. (define-public cl-nhooks
  18845. (sbcl-package->cl-source-package sbcl-nhooks))
  18846. (define-public ecl-nhooks
  18847. (sbcl-package->ecl-package sbcl-nhooks))
  18848. (define-public sbcl-wordnet
  18849. (let ((commit "8cd0db8f5e84e7a930fa74e590ecddf75cd8e5d6")
  18850. (revision "0"))
  18851. (package
  18852. (name "sbcl-wordnet")
  18853. (version (git-version "0.0.1" revision commit))
  18854. (source
  18855. (origin
  18856. (method git-fetch)
  18857. (uri (git-reference
  18858. (url "https://github.com/phoe/wordnet")
  18859. (commit commit)))
  18860. (sha256
  18861. (base32 "07p60k295fsfcp0gmkqhrxd68hb38aqva8f4k8xk8bqqxxf42vkq"))
  18862. (file-name (git-file-name "cl-wordnet" commit))))
  18863. (build-system asdf-build-system/sbcl)
  18864. (arguments
  18865. `(#:tests? #f)) ; There are no tests.
  18866. (inputs
  18867. (list sbcl-split-sequence))
  18868. (home-page "https://github.com/phoe/wordnet")
  18869. (synopsis "Common Lisp interface to WordNet")
  18870. (description
  18871. "This software provides an interface by which Common Lisp programs can
  18872. access lexicographic data from WordNet.")
  18873. (license license:expat))))
  18874. (define-public cl-wordnet
  18875. (sbcl-package->cl-source-package sbcl-wordnet))
  18876. (define-public ecl-wordnet
  18877. (sbcl-package->ecl-package sbcl-wordnet))
  18878. (define-public sbcl-nfiles
  18879. (package
  18880. (name "sbcl-nfiles")
  18881. (version "0.2.1")
  18882. (source
  18883. (origin
  18884. (method git-fetch)
  18885. (uri (git-reference
  18886. (url "https://github.com/atlas-engineer/nfiles")
  18887. (commit version)))
  18888. (file-name (git-file-name "nfiles" version))
  18889. (sha256
  18890. (base32
  18891. "1jdrqvxp4dxlkggx951rxp29lg7hm8zxq35pqq8hr9m9ydy088s7"))))
  18892. (build-system asdf-build-system/sbcl)
  18893. (inputs
  18894. (list gnupg
  18895. sbcl-alexandria
  18896. sbcl-hu.dwim.defclass-star
  18897. sbcl-serapeum
  18898. sbcl-trivial-garbage
  18899. sbcl-trivial-package-local-nicknames
  18900. sbcl-trivial-types))
  18901. (native-inputs
  18902. (list sbcl-prove))
  18903. (arguments
  18904. `(#:phases
  18905. (modify-phases %standard-phases
  18906. (add-after 'unpack 'fix-paths
  18907. (lambda* (#:key inputs #:allow-other-keys)
  18908. (substitute* "gpg.lisp"
  18909. (("\"gpg\"")
  18910. (string-append "\"" (assoc-ref inputs "gnupg") "/bin/gpg\""))))))))
  18911. (home-page "https://github.com/atlas-engineer/nfiles")
  18912. (synopsis "Manage file persistence and loading in Common Lisp")
  18913. (description
  18914. "NFiles is a Common Lisp library to help manage file persistence and
  18915. loading, in particular user-centric files like configuration files. It boasts
  18916. the following features:
  18917. @itemize
  18918. @item Dynamic and customizable path expansion.
  18919. @item Extensible serialization and deserialization.
  18920. @item Cached reads and writes. When a file object expands to the same path as
  18921. another one, a read or write on it won’t do anything in case there was no
  18922. change since last write.
  18923. @item (Experimental!) On-the-fly PGP encryption.
  18924. @item Profile support.
  18925. @item On read error, existing files are backed up.
  18926. @item On write error, no file is written to disk, the existing file is preserved.
  18927. @end itemize\n")
  18928. (license license:bsd-3)))
  18929. (define-public ecl-nfiles
  18930. (let ((pkg (sbcl-package->ecl-package sbcl-nfiles)))
  18931. (package
  18932. (inherit pkg)
  18933. (inputs
  18934. (cons (list "iolib" ecl-iolib)
  18935. (package-inputs pkg))))))
  18936. (define-public cl-nfiles
  18937. (package
  18938. (inherit (sbcl-package->cl-source-package sbcl-nfiles))
  18939. (inputs
  18940. (cons (list "iolib" cl-iolib)
  18941. (package-inputs sbcl-nfiles)))))
  18942. (define-public sbcl-cl-template
  18943. (let ((commit "46193a9a389bb950530e579eae7e6e5a18184832")
  18944. (revision "0"))
  18945. (package
  18946. (name "sbcl-cl-template")
  18947. (version (git-version "0.0.1" revision commit))
  18948. (home-page "https://github.com/alpha123/cl-template")
  18949. (source
  18950. (origin
  18951. (method git-fetch)
  18952. (uri (git-reference
  18953. (url "https://github.com/alpha123/cl-template")
  18954. (commit commit)))
  18955. (file-name (git-file-name "cl-template" version))
  18956. (sha256
  18957. (base32 "1rhg023a2nxsk5x6abd6i0a8sh36aj0bgsh80w60m3b7xlsva2x2"))))
  18958. (build-system asdf-build-system/sbcl)
  18959. (native-inputs
  18960. (list sbcl-fiveam))
  18961. (synopsis "Template engine for Common Lisp")
  18962. (description "@code{cl-template} is a template engine for Common Lisp,
  18963. taking inspiration from Ruby's ERb module.")
  18964. (license license:expat))))
  18965. (define-public cl-template
  18966. (sbcl-package->cl-source-package sbcl-cl-template))
  18967. (define-public ecl-cl-template
  18968. (sbcl-package->ecl-package sbcl-cl-template))
  18969. (define-public sbcl-fast-websocket
  18970. (let ((commit "24c0217e7c0d25b6ef6ab799452cba0b9fb58f44")
  18971. (revision "0"))
  18972. (package
  18973. (name "sbcl-fast-websocket")
  18974. (version (git-version "0.1" revision commit))
  18975. (home-page "https://github.com/fukamachi/fast-websocket")
  18976. (source
  18977. (origin
  18978. (method git-fetch)
  18979. (uri (git-reference
  18980. (url "https://github.com/fukamachi/fast-websocket")
  18981. (commit commit)))
  18982. (file-name (git-file-name "cl-fast-websoclet" version))
  18983. (sha256
  18984. (base32
  18985. "04sacrhpdp3ixvp6wjwxls5mv47g0q6542pd16yn199xjg0drw8a"))))
  18986. (build-system asdf-build-system/sbcl)
  18987. (arguments
  18988. ;; Test system must be loaded before, otherwise tests fail with:
  18989. ;; Component FAST-WEBSOCKET-ASD::FAST-WEBSOCKET-TEST not found,
  18990. ;; required by #<SYSTEM "fast-websocket">.
  18991. '(#:asd-systems '("fast-websocket-test"
  18992. "fast-websocket")))
  18993. (inputs
  18994. (list sbcl-fast-io
  18995. sbcl-babel
  18996. sbcl-alexandria))
  18997. (native-inputs
  18998. (list sbcl-prove
  18999. sbcl-trivial-utf-8))
  19000. (synopsis "WebSocket protocol parser for Common Lisp")
  19001. (description
  19002. "@code{fast-websocket} is an optimized low-level WebSocket protocol
  19003. parser/composer.")
  19004. (license license:bsd-2))))
  19005. (define-public cl-fast-websocket
  19006. (sbcl-package->cl-source-package sbcl-fast-websocket))
  19007. (define-public ecl-fast-websocket
  19008. (sbcl-package->ecl-package sbcl-fast-websocket))
  19009. (define-public sbcl-event-emitter
  19010. (let ((commit "cb0e15f9de4c617cef3f5d5a22a41e28f9613d0b")
  19011. (revision "0"))
  19012. (package
  19013. (name "sbcl-event-emitter")
  19014. (version (git-version "0.0.1" revision commit))
  19015. (home-page "https://github.com/fukamachi/event-emitter")
  19016. (source
  19017. (origin
  19018. (method git-fetch)
  19019. (uri (git-reference
  19020. (url "https://github.com/fukamachi/event-emitter")
  19021. (commit commit)))
  19022. (file-name (git-file-name "cl-event-emitter" version))
  19023. (sha256
  19024. (base32 "1i18xzfr6334db9dzj0lsl7wxw1r1l0ixvn883mjbyqw0czp21h6"))))
  19025. (build-system asdf-build-system/sbcl)
  19026. (native-inputs
  19027. (list sbcl-prove))
  19028. (synopsis "Event mechanism for Common Lisp objects")
  19029. (description "Event Emitter provides an event mechanism like Node.js for
  19030. Common Lisp objects. It is mostly ported from Node.js @code{events} module.")
  19031. (license license:bsd-2))))
  19032. (define-public cl-event-emitter
  19033. (sbcl-package->cl-source-package sbcl-event-emitter))
  19034. (define-public ecl-event-emitter
  19035. (sbcl-package->ecl-package sbcl-event-emitter))
  19036. (define-public sbcl-sha1
  19037. (let ((commit "be8b1b155c3a6ad3eb9b200212af6ff52f5611de")
  19038. (revision "0"))
  19039. (package
  19040. (name "sbcl-sha1")
  19041. (version (git-version "1.0" revision commit))
  19042. (home-page "https://github.com/massung/sha1")
  19043. (source
  19044. (origin
  19045. (method git-fetch)
  19046. (uri (git-reference
  19047. (url "https://github.com/massung/sha1")
  19048. (commit commit)))
  19049. (file-name (git-file-name "cl-sha1" version))
  19050. (sha256
  19051. (base32 "1cfn0j5yfwqkwr2dm73wr9hz8dmws3ngxlbk9886ahxkg544qx4z"))))
  19052. (build-system asdf-build-system/sbcl)
  19053. (synopsis "SHA1 Digest and HMAC for Common Lisp")
  19054. (description
  19055. "This is a very simple implementation of SHA1 and HMAC-SHA1 for
  19056. Common Lisp. The code is intended to be easy to follow and is therefore a
  19057. little slower than it could be.")
  19058. (license license:asl2.0))))
  19059. (define-public cl-sha1
  19060. (sbcl-package->cl-source-package sbcl-sha1))
  19061. (define-public ecl-sha1
  19062. (sbcl-package->ecl-package sbcl-sha1))
  19063. (define-public sbcl-websocket-driver
  19064. (let ((commit "df94496ecb525d086eeada4f5875975515b7212e")
  19065. (revision "0"))
  19066. (package
  19067. (name "sbcl-websocket-driver")
  19068. (version (git-version "0.2.0" revision commit))
  19069. (home-page "https://github.com/fukamachi/websocket-driver")
  19070. (source
  19071. (origin
  19072. (method git-fetch)
  19073. (uri (git-reference
  19074. (url "https://github.com/fukamachi/websocket-driver")
  19075. (commit commit)))
  19076. (file-name (git-file-name "cl-websocket-driver" version))
  19077. (sha256
  19078. (base32 "0y852sqdnxfma6kw833by4wkgbgbv4ppzawjk8pk3y1pmh6is83y"))))
  19079. (build-system asdf-build-system/sbcl)
  19080. (inputs
  19081. (list sbcl-babel
  19082. sbcl-clack
  19083. sbcl-fast-http
  19084. sbcl-fast-io
  19085. sbcl-fast-websocket
  19086. sbcl-event-emitter
  19087. sbcl-sha1
  19088. sbcl-cl-base64
  19089. sbcl-split-sequence
  19090. sbcl-bordeaux-threads
  19091. sbcl-quri))
  19092. (synopsis "WebSocket server/client for Common Lisp")
  19093. (description "This library provides a WebSocket server and client
  19094. implementation for Common Lisp.")
  19095. (license license:bsd-2))))
  19096. (define-public cl-websocket-driver
  19097. (sbcl-package->cl-source-package sbcl-websocket-driver))
  19098. (define-public ecl-websocket-driver
  19099. (sbcl-package->ecl-package sbcl-websocket-driver))
  19100. (define-public sbcl-purgatory
  19101. (let ((commit "ade0d60a14a1067b9cc8cf06d1f1a1ca8cecdb03")
  19102. (revision "1"))
  19103. (package
  19104. (name "sbcl-purgatory")
  19105. (version (git-version "0.1.0" revision commit))
  19106. (source
  19107. (origin
  19108. (method git-fetch)
  19109. (uri (git-reference
  19110. (url "https://notabug.org/cage/purgatory")
  19111. (commit commit)))
  19112. (file-name (git-file-name "cl-purgatory" version))
  19113. (sha256
  19114. (base32 "1mwlalymmfbx1jx5wzqcnpg5h8d0ylllm1p3f4lwaawfv05lk82s"))))
  19115. (build-system asdf-build-system/sbcl)
  19116. (inputs
  19117. (list sbcl-alexandria
  19118. sbcl-babel
  19119. sbcl-bordeaux-threads
  19120. sbcl-cl-ppcre-unicode
  19121. sbcl-usocket))
  19122. (synopsis "Common Lisp implementation of the 9p protocol")
  19123. (description "This is a Common Lisp library that implements
  19124. the 9p network filesystem protocol.")
  19125. (home-page "https://notabug.org/cage/purgatory/")
  19126. (license license:llgpl))))
  19127. (define-public ecl-purgatory
  19128. (sbcl-package->ecl-package sbcl-purgatory))
  19129. (define-public cl-purgatory
  19130. (sbcl-package->cl-source-package sbcl-purgatory))