03:40:57 ccl-logbot [~ccl-logbo@setf.clozure.com] has joined #lisp
03:40:57
03:40:57 -!- names: ccl-logbot bunt ikki rme k4jd095b_ spradnyesh sepult` jan247 HET3 sellout fe[nl]ix synthasee gigamonkey Sergio` ekpneo rodt2 kejsaren_ hadronzoo Tordek jao ikonia fusss redline6561 cmeow spcartman Fade parolang xenosoz1 porcelina c|mell legumbre billstclair konr bizarrefish saikat Anarch adu rread mbohun bipt sbahra ichernetsky dto maden_ arbscht dfox ltriant potatishandlarn Jasko fatblueduck derrida Xantoz drwho plutonas Krystof Phoodus ace4016 moocow
03:40:57 -!- names: oconnore_ xan-afk _rata_ mathrick m4thrick borkamaniac daniel__ araujo Fare marioxcc gruseom foom kpreid koning_robot rotty rootzlevel Makoryu spacebat lisppaste abeaumont vsync kwinz3 rrice Soulman__ antoszka madnificent adeht holycow Harag nowhere_man blitz_ dmiles_afk rbancroft lharc trebor_dki Oddity goosemo gz Dodek nipra luis xinming lpolzer__ wgl AntiSpamMeta varjag Xof Guest95631 smithzv_ Ralith_ Draggor cmm spoofy Taggnostr Yamazaki-kun
03:40:57 -!- names: alexsuraci pr kleppari ASau``` joast BrianRice Axioplase_ Pepe_ hicx174 kajic Elench tychoish fda314925 fihi09 moshisushi pchrist sobersabre mle nickjd Lycurgus Xach AqD|Home sykopomp nullman boyscared ``Erik yahooooo austinh bdowning ironChicken stepnem pkhuong codemonkeyx prip djinni` rapacity eno fgtech christoph_debian rahul drewc emma snorble anekos sepisultrum WOG turbo24prg frodef Adrinael nyef yacin pookleblinky pragma_ blast_hardcheese joga
03:40:57 -!- names: clog lukjad86 slyrus bytecolor cataska specbot ramus Amadiro rlonstein Zhivago clop hypno sytse TDT _3b` tltstc dalkvist easyE Madsy beach Stattrav DrForr mikezor deepfire Tabmow koollman lnostdal p_l REPLeffect spiaggia p8m [df] Buganini G0SUB tic hdurer_ randa pok johs felipe setheus slather_ tmdhat bfein PuffTheMagic Guest37097 lemoinem cpt_nemo lichtblau Patzy jroes zbigniew adlai_ df_aldur_ mtd Orest^bnc froydnj Ginei_Morioka scode hohum ski housel
03:40:57 -!- names: BeZerk ecraven antifuchs tmitt minion kvsari stettberger Borbus franki^ slyrus_ Tristam mornfall Tril Helheim krappie dostoyevsky gonzojive _bakkdoor eldragon Demosthenes _3b guaqua djm cods Khisanth Holcxjo kuwabara srcerer dcrawford PissedNumlock KatrinaTheLamia qebab thijso kami schme ve Raptelan kom_ jyujin hc_e rikjasnon fnordus rsynnott egn jsnell dejones reb Aisling nuba jrockway dym borisc bjorkintosh l_a_m retupmoca ineiros z0d tvaalen
03:40:57 -!- names: timchen1` tomaw ennen kencausey nicktastic fmu herbieB
20:48:38 ccl-logbot [~ccl-logbo@setf.clozure.com] has joined #lisp
20:48:38
20:48:38 -!- names: ccl-logbot puchacz kwinz3_ prip quidnunc balooga drwho schmx mstevens PuffTheMagic_ wormwood mjonsson cmatei HET3 udzinari pdponze seangrove kejsaren leifw Draggor enthymeme RaceCondition Nshag ve nixeagle Deesl Zephyrus astoon toekutr daniel slyrus snearch Taggnostr dnolen HET2 xenosoz1 lisppaste bzzbzz kzar tcr lhz chittoor l0stman timor1 eldragon LiamH marioxcc sepult nipra potatishandlarn dreish ace4016 ASau grouzen mattrepl carlocci Guest51763 c|mell
20:48:38 -!- names: bgs100 legumbre rares redline6561 dlowe fe[nl]ix Guthur Odin- mega1 rayservers adeht sellout attila_lendvai johs plutonas nha Yuuhi pavelludiq freiksenet morphling pragma_ etate beach ichernetsky mrSpec cmm benny nowhereman abend sbahra Tordek konr stassats` JuanDaugherty AntiSpamMeta bizarrefish stokachu mbohun Yamazaki-kun billstclair Jasko Adamant nicolai dmiles_afk cddr maden kuwabara porcelina jao mikezor kencausey Oddity rsynnott oconnore_
20:48:38 -!- names: Ginei_Morioka BrianRice fda314925 xinming pchrist tompa Dodek yahooooo fgtech Drakeson blast_hardcheese tltstc hypno Phoodus dto Ralith OsamaBinWOG hicx174 BeZerk Krystof sjbach cods mooglenorph Harag dostoyevsky delYsid sykopomp pjb amaron hc_e spiaggia froydnj Madsy rootzlevel m4thrick djinni` slather setheus [df] wgl bakkdoor gonzojive jrockway _3b deepfire REPLeffect lemoinem bdowning reb` Khisanth ineiros Xof ski kom__ fnordus easyE eno codemonk1yx
20:48:38 -!- names: joast drewc z0d Aisling zbigniew ennen lukjad86 idurand tsuru pkhuong yacin dejones rikjasnon timchen1` nuba KatrinaTheLamia djm guaqua krappie franki^ jroes Patzy pok hdurer_ p_l sepisultrum rapacity ironChicken tychoish blitz_ rotty foom cpt_nemo stettberger kajic tomaw nicktastic herbieB Trystam Holcxjo ``Erik tmdhat Adrinael mornfall ecraven emma mtd lonstein Soulmann srcerer dalkvist araujo hsaliak df_aldur _3b`` turbo24p1g arbscht_ Borbus borisc_
20:48:38 -!- names: Helheim phadthai Zhivago koollman Amadiro randa l_a_m mgr_ p8m dym_ jyujin_ sytse rahul Axioplase_ Xach joga felipe hacim Arelius Buganini ekpneo_ ianmcorvidae|alt nullman pr Kavinorum vsync DrForr thijso kvsari bytecolor clog TDT kleppari Xantoz tic boyscared Reinout_Stevens synthasee CrEddy spacebat mathrick retupmoca hugod tmitt pookleblinky goosemo clop fihi09``` timlarson Pepe_ antifuchs housel Raptelan hohum adlai_ jsnell nyef luis Tabmow Fade gz ramus
20:48:38 -!- names: bfein scode dcrawford egn tvaalen mle-lucca anekos
20:48:46 fisxoj [~fisxoj@gw-fr-vauban2.inka-online.net] has joined #lisp
20:49:42 stassats`: Maybe something like a standard packet-sniffer/protocol-analyzer?
20:50:14 that's what i'm going for currently, would be better if there was particularly suited
20:50:51 I think there -is-, but it's not coming to mind.
20:51:11 Or there's some program you can run that pretends to be a display and just does passthrough...
20:52:32 i found xmon
20:52:42 it appears to be doing this
20:53:09 Stattrav [~Stattrav@202.3.77.161] has joined #lisp
20:53:52 is there something like strerror but for mapping signums to their names?
20:54:55 tcr: strsignal(3)?
20:55:26 -!- ASau [~user@83.69.227.32] has quit [Read error: Connection reset by peer]
20:56:00 thanks!
20:56:11 -!- Ginei_Morioka [irssi_log@78.115.199.228] has quit [Ping timeout: 246 seconds]
20:56:20 Oh, that's beautiful. strsignal() doesn't look to be thread-safe, but it's recommended over the -array- of descriptions, which is obviously threadsafe.
20:56:30 :D
20:57:04 nyef: why isn't it thread-safe?
20:57:15 -!- tltstc [~tltstc@cpe-76-90-95-39.socal.res.rr.com] has quit [Ping timeout: 265 seconds]
20:57:38 pkhuong: Only good until the next call.
20:57:54 Ginei_Morioka [irssi_log@78.115.199.228] has joined #lisp
20:57:58 "strsignal() function returns a string describing the signal number passed in the argument sig. The string can only be used until the next call to strsignal"
20:58:06 nyef: oh right.. not const char*.
20:59:54 so I'm trying to write a function which returns the sigprocmask as an alist. I'm wondering whether I should write a wrapper function in C and if what it should return
21:00:29 oh well, xmon appears to be twenty years old and not working
21:00:31 xan_ [~xan@cs78225040.pp.htv.fi] has joined #lisp
21:00:54 could be worse, like 50 years old and barely working :-)
21:01:18 now i found xtrace, and i even have it installed
21:02:13 tcr: I'm not sure that will be very useful: strsignal returns the long description of the signal, not the short name
21:02:28 -!- sbahra [~sbahra@2002:62da:45b3:1234:21d:e0ff:fe00:f7ab] has quit [Remote host closed the connection]
21:02:47 hm
21:02:50 -!- Ginei_Morioka [irssi_log@78.115.199.228] has quit [Ping timeout: 246 seconds]
21:02:59 Ginei_Morioka [irssi_log@78.115.199.228] has joined #lisp
21:04:34 -!- astoon [~astoon@80.78.109.217] has quit [Ping timeout: 260 seconds]
21:04:41 varjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp
21:07:04 bah that sucks
21:07:08 -!- balooga [~00u4440@adsl-76-194-233-139.dsl.lsan03.sbcglobal.net] has quit [Quit: Leaving.]
21:07:44 -!- Ginei_Morioka [irssi_log@78.115.199.228] has quit [Ping timeout: 246 seconds]
21:08:00 Ginei_Morioka [irssi_log@78.115.199.228] has joined #lisp
21:08:43 tcr: freebsd also has a sys_signame[], which is what you want, but not linux
21:09:35 ASau [~user@83.69.227.32] has joined #lisp
21:09:56 looks like CLX hangs because it doesn't send anything in the first place
21:10:33 stassats`: So, is it not flushing an output stream for some reason, or is it just confused?
21:11:07 that's what i need to find out, it worked for me before, and CLX wasn't changed much recently
21:11:13 i blame something in CCL
21:11:38 Heh. "Wasn't changed much recently" has to be an understatement.
21:11:52 One patch to the glx-fixes branch in months.
21:12:51 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection]
21:12:59 -!- Ginei_Morioka [irssi_log@78.115.199.228] has quit [Ping timeout: 246 seconds]
21:13:08 Ginei_Morioka [irssi_log@78.115.199.228] has joined #lisp
21:15:10 lemonade` [~00@pool-74-96-73-198.washdc.fios.verizon.net] has joined #lisp
21:15:14 -!- idurand [~idurand@faucon.labri.fr] has quit [Ping timeout: 248 seconds]
21:15:56 -!- CrEddy [~CrazyEddy@wrongplanet/CrazyEddy] has quit [Ping timeout: 245 seconds]
21:16:21 -!- nipra [~nipra@121.243.225.226] has quit [Ping timeout: 245 seconds]
21:16:30 CrEddy [~CrazyEddy@wrongplanet/CrazyEddy] has joined #lisp
21:18:14 -!- Ginei_Morioka [irssi_log@78.115.199.228] has quit [Ping timeout: 246 seconds]
21:19:06 idurand [~idurand@faucon.labri.fr] has joined #lisp
21:20:08 fatblueduck [~duck@pool-71-104-235-97.lsanca.dsl-w.verizon.net] has joined #lisp
21:21:37 nipra [~nipra@121.243.225.226] has joined #lisp
21:21:50 I'm using (map 'list #'reverse (sublist-returning-function))
21:21:55 and it works in the repl
21:22:11 but in my program it returns the list without reversing the elements
21:22:42 would someone tell me what I'm doing wrong?
21:22:44 then it uses different code
21:22:52 jewel [~jewel@vc-41-31-181-173.umts.vodacom.co.za] has joined #lisp
21:24:06 stassats: in the repl, "sublist-returning-function" is instead "(list '(1 2) '(3 3))"
21:24:30 but my the function returns a list that is ordered in that same way
21:24:35 well, see what your function returns really
21:24:54 ((7.0 0) (6.928203 1) (6.708204 2) (6.3245554 3) (5.7445626 4) (4.8989797 5))
21:25:03 that is what the function returns
21:25:04 -!- Odin- [~sbkhh@adsl-2-92.du.snerpa.is] has quit [Quit: Odin-]
21:25:16 -!- kwinz3_ [~kwinz@85.124.207.234] has quit [Ping timeout: 276 seconds]
21:25:54 and when I map #'reverse to it that is returned un-reversed
21:26:00 -!- toekutr [~toekutr@adsl-69-107-143-127.dsl.pltn13.pacbell.net] has quit [Quit: Leaving]
21:26:24 you apply it to the elements
21:27:12 I'll pastebin the this so you can see what I'm doing...
21:27:16 you want to reverse values in the pairs, right?
21:28:01 -!- nipra [~nipra@121.243.225.226] has quit [Ping timeout: 245 seconds]
21:28:01 right
21:28:06 Ginei_Morioka [irssi_log@78.115.199.228] has joined #lisp
21:28:19 http://www.pastebin.ca/1854158
21:28:21 nipra [~nipra@121.243.225.226] has joined #lisp
21:28:54 both quadrant1 and quadrant2 will return the same values when format returns them
21:29:49 but you print only quadrant2
21:30:01 it says quadrant2
21:30:06 which is not modified
21:30:25 in the code, as opposed to your format string
21:32:12 ahhh, -I was calling lengths-to-perimeter-when-radius from the repl and not add-stroke
21:32:23 add-stroke is indeed reversing the list
21:32:39 thanks for your time varjag and stassats`
21:34:01 konr1 [~konrad@187.106.50.112] has joined #lisp
21:34:20 balooga [~00u4440@adsl-76-194-233-139.dsl.lsan03.sbcglobal.net] has joined #lisp
21:36:06 kwinz3_ [~kwinz@85.124.207.234] has joined #lisp
21:37:03 So I think my students might actually read the error messages if they were undrstandable and if they were in French. The question then is "what things does one have to watch out for in order to avoid effective internationalizations of ones implementation?".
21:37:10 -!- konr [~konrad@187.106.50.112] has quit [Ping timeout: 268 seconds]
21:37:45 Clearly, inline :report messages in conditions would be the first to go.
21:38:01 -!- jewel [~jewel@vc-41-31-181-173.umts.vodacom.co.za] has quit [Ping timeout: 245 seconds]
21:39:04 Then, pretty much any signaling using a control string as a datum, in favor of using a condition object with a defined (and language-dependent) report method.
21:39:46 Asserts could be portable, just because they don't have any messages in them, but CERROR would be tricky.
21:40:04 asserts can have customized messages, too, just as check-type
21:40:11 beach: make the reporting functions (inline)
21:40:24 beach: use the long form of assert
21:40:54 fe[nl]ix: explain please!
21:41:04 p_l: How would that help?
21:41:15 beach: clisp has support for gettext, there's also cl-i10n by the dwim group (though I recall them saying it's unsatisfactory)
21:41:55 tcr: What do you mean by "asserts can have customized messages"?
21:42:18 the same as fe[nl]ix; you can give assert a custom error message
21:42:31 (assert (oddp 2) () "foo? ~D" 42)
21:43:05 tcr: and what is your suggestion for making this multi-lingual depending on some environment variable?
21:43:45 beach: it was just an effort to have it make little impact on non-multilingual system while keeping multilang capability
21:44:06 beach: (assert (null position) (position) (_ "A socket cannot have a file-position."))
21:44:21 beach: #'_ being the translator
21:44:30 I don't know, I think it's hard, needs careful consideration and I'm not sure it's particularly viable in CL
21:45:37 fe[nl]ix: You are essentially advocating the "gettext" method. Is this the right idea?
21:46:21 beach: You could ask on comp.lang.lisp if anyone has experience with internationalization in CL :-)
21:46:22 beach: I'm not certain, but at least it's a known method
21:46:28 fe[nl]ix: What if a language needs the arguments in a different order for instance?
21:47:19 tcr: Thanks! And then get hundreds of messages about how I should use F# instead?
21:47:30 fe[nl]ix: Indeed.
21:47:46 beach: standard order of formatter arguments and usage of arglist movement format directives?
21:47:59 ugly but works
21:48:11 p_l: Yep.
21:48:27 -!- maden [~maden@dsl-157-111.aei.ca] has quit [Remote host closed the connection]
21:48:48 gettext has the pros of being commonly known format and rather easy to process
21:49:00 beach: AFAIK, gettext-like frameworks can at most change a word's suffix based on a parameter of the localized string
21:49:08 in order to handle pluralizationss
21:49:17 such as in Polish
21:49:25 Athas [~athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp
21:49:39 but that's all
21:49:50 well, FORMAT can do more with conditional directives, but still, languages like Polish, not to mention Japanese, are screwed
21:50:01 And that may or may not be sufficient for some languages.
21:50:14 p_l: Right!
21:50:25 beach: if the idiomatic way of expressing that message in language X requires a different order of parameters wrt. Enlgish, they're all screwed
21:50:53 fe[nl]ix: No, as p_l pointed out.
21:51:00 well doing it all in condition objects, the order does not matter
21:51:17 tcr: Exactly!
21:51:39 So it would be better to customize all reporting messages according to language.
21:51:55 and now i can't reproduce my bug anymore, damn
21:52:13 forbids some idioms like (error 'foof :context "during frobbage" :value 42)
21:52:16 the problem with slavic languages is that nouns have gender and numbering suffixes change with that. Then you have languages like japanese, where you have several different suffixes to use for numbering depending on the *kind* of noun
21:52:52 tcr: Yeah, one would have to be more careful about those.
21:53:03 tcr: dispatch on 'foof, make the rest arguments
21:53:13 luckily, Lisp has symbols, so :context :frobbage may work, too
21:54:36 tcr: or make it into (translate-context (error 'foof ...)) which would change the whole line into gettextable element ?
21:54:38 p_l: it's the same thing: 3 classes in Polish(genders), 21 in Japanese
21:54:40 I can SORT OF see how to internationalize an implementation, but it is even trickier to keep it compliant.
21:55:29 Like how do you handle (setf documentation)?
21:55:41 I guess the advice is: avoid strings, until you know what language you want
21:55:42 beach: While I'm giving all kinds of ideas regarding how to internationalize, I found by personal experience (and observation) that translation doesn't belong with computer languages
21:56:20 *p_l* shudders at memories of "polish translation" of Logo and Pascal
21:57:47 p_l: I kind of agree with you, and you and I probably both think that when you program, you are in "English" mode. However, it would be nice if my students could understand (and therefore read) the messages. And I also think that it would be an interesting exercise in making a CL implementation more modular.
21:57:48 forth is already polish
21:57:56 heh!
21:58:55 adeht: Thanks! Now how do you do that for (say) CERROR?
21:59:03 jewel [~jewel@196-210-187-89-tbnb-esr-2.dynamic.isadsl.co.za] has joined #lisp
21:59:06 beach: link all messages to localized translation+explanation, but don't put actual translation into implementation?
21:59:16 beach, cl-l10n is not that bad, we just have an extensive TODO on it, but mostly infrastructural ones and about integration with local-time...
21:59:44 for example, make standard error codes... the modularity would still be nice for certain apps, though
22:00:06 beach, cl-l10n has a reader for cimple gettext use #"resource key" and provides transparent functional resources (closures invoked if they are closures)
22:00:25 beach: don't use cerrro
22:00:33 p_l: Possibly! Though I need to think through the possibility of making a particular CL implementation internationalizable, perhaps only to convince myself that it's not possible.
22:00:33 beach, it has inheritance (*locale* can be a list)
22:00:37 beach: cerror..
22:00:57 beach: the first arg is a format control, a formatter function is a format control, too.
22:01:09 attila_lendvai: sounds interesting!
22:01:12 beach: so you can do (cerror (translated-formatter "...") ...)
22:01:39 i spent several hours debugging clx, and now it doesn't hang anymore, that's unfair!
22:01:51 you scared the bug :-)
22:02:03 beach: standard error codes + bi-lingual CLHS and error database/tutorials/etc. would have extra educational value, as it would teach extra english :)
22:02:05 somehow, i don't believe it won't show up anymore
22:02:12 adeht: That's the kind of "rule" I am looking for!
22:02:14 -!- ace4016 [~jmarcelin@adsl-156-147-13.mia.bellsouth.net] has quit [Quit: When there's nothing left to burn, you have to set yourself on fire.]
22:02:26 -!- kwinz3_ [~kwinz@85.124.207.234] has quit [Ping timeout: 260 seconds]
22:02:27 beach, our approach is that proper l10n of a language requires all the features of a complex spell checker, which is beyond the scope of cl-l10n. but closures give you the freedom to use language specific libs...
22:03:01 beach: for documentation, don't use `documentation'.. use a documentation-for-language that takes an additional language parameter
22:03:09 fe[nl]ix: btw, it's 5 classes for counters in polish, it's just that they oft overlap
22:03:32 kwinz3 [~kwinz@85.124.207.234] has joined #lisp
22:03:59 -!- morphling [~stefan@gssn-5f755908.pool.mediaWays.net] has quit [Remote host closed the connection]
22:04:01 adeht: I figured that out already, but then, if I want to remain compatible with CL, there has to be a DOCUMENTATION one day.
22:04:17 beach: special variables to the rescue?
22:04:21 beach: make documentation call (doc-for-lang *default-lang* ...)
22:04:31 fe[nl]ix: ((:singular (:male :female :neutral)) (:plural (:male-like :not-male-like))) ;-)
22:04:36 attila_lendvai: cl-i10n sounds good.
22:05:31 cl-l10n supports all that *default-lang* through functinal resources... they effectively dispatch on a list of locales
22:06:49 beach: but personally I, too, dislike "localized" programming environments.. I think your students will be better served if they learn their english
22:06:58 adeht, tcr: I agree. But the goal of SICL is to provide reusable components to implementors of CL. If it were just my own system, no problem, but how do I write a reusable module for a system that doesn't use internationalization and that is still part of a system that does?
22:08:32 ace4016 [~jmarcelin@adsl-156-147-13.mia.bellsouth.net] has joined #lisp
22:08:33 beach: you need to keep in mind that it's _A_NSI Common Lisp :)
22:08:54 adeht: I might agree. But the choices are hard! Have the students systematically use ABORT and guess the problem, thereby propagating the myth that Lisp is mysterious, useless, incomprehensible, etc, or report the problem in a way that they can understand.
22:09:04 beach: on an unrelated note, how harddo you think it would be to decouple McCLIM's command system into a portable, non-CLIM module?
22:10:05 p_l: I haven't given it any thought, but I have been doing pretty much just that with the Web-based information system I am currently writing.
22:11:03 schoppenhauer [~css@unaffiliated/schoppenhauer] has joined #lisp
22:11:08 beach: I was basically thinking of making a system that could work on minimal, ANSI-specified I/O + be extensible by writing methods specialized for the kind of stream etc.
22:11:45 beach: I don't think there's any technical solution to solve that kind of problem :)
22:11:51 cause I would like to for example reuse SLIME REPL with CLIM-style commands
22:12:19 beach: you could just teach them not to ignore error messages
22:13:02 -!- marioxcc is now known as marioxcc-AFK
22:13:49 beach: the only way to solve that problem would be to use in each case a closure that takes the parameters and computes the actual message
22:14:14 p_l: Sounds great!
22:14:42 beach: if you do it in your own CL, you can extend (setf documentation), assert, cerror, etc ... to do that
22:14:46 -!- lemonade` [~00@pool-74-96-73-198.washdc.fios.verizon.net] has quit [Quit: leaving]
22:14:50 adeht: Thanks for the advice!
22:15:02 actually the study of the subject of dealing with exceptional situations such as errors thoughtfully both in software and in operation could be extremely beneficial to programmers
22:15:25 beach: it would be great for all kinds of ad-hoc apps where you don't really want to write an UI but you don't fancy writing code commands all the time
22:15:52 fe[nl]ix: Yes, I did that, and it turns out to be portable, if you accpt that a particular invocation is concerned with a particular language.
22:16:12 ideally it would undo the decades of sloppy UNIXy thinking
22:16:56 adeht: I don't think UNIXy thinking was actually that sloppy, I think it's more of a laziness problem
22:17:00 p_l: Definitely!
22:17:31 adeht: I totally agree with that goal!
22:17:44 p_l: yeah.. it takes a lot of "words" to say things correctly in C :)
22:17:54 Edward [Ed@AAubervilliers-154-1-73-102.w81-249.abo.wanadoo.fr] has joined #lisp
22:18:05 the UNIX pov was "better fail immediately if you can't ensure proper recovery" - so that you wouldn't have non-deterministic error later on because you tried to recover from an error and something went bad
22:18:23 gemelen [~shelta@shpd-92-101-135-87.vologda.ru] has joined #lisp
22:18:34 -!- pdponze [~pdponze@144.85.124.96] has left #lisp
22:18:47 adeht: well, C was by design a rather limited language, and the idea was afaik to write in higher level languages that would then generate C...
22:18:54 p_l: And, it was related to technology at the time, like the concept of a process, that we now consider "good" as opposed to "a necessity due to the limitations of the PDP8".
22:19:09 basically, kind of macros, except on inter-language level
22:19:42 saturday night horror stories?
22:20:21 otoh, some popular "unices" have horrible bugs that are completely ignored that stop you from recovering from certain errors...
22:20:44 p_l: the thing is that "proper recovery" can never be completely ensured.. but in many cases it can be damn useful..
22:21:41 So it looks like SICL will have some #+ and @- in there...
22:22:33 -!- konr1 [~konrad@187.106.50.112] has quit [Quit: Leaving.]
22:22:37 rares1 [~rares@174-17-85-159.phnx.qwest.net] has joined #lisp
22:22:43 the fact that it's hard work to handle things gracefully, coupled with a bare language such as C, means the usual approach is the "punt" approach.. e.g., xmalloc() { return malloc() || exit(1); } (yes, not real C)
22:22:48 -!- rares [~rares@174-26-125-120.phnx.qwest.net] has quit [Ping timeout: 268 seconds]
22:22:59 konr [~konrad@187.106.50.112] has joined #lisp
22:23:58 Erlang now advances that approach, too.. at least on a similar level of failure
22:25:03 adeht: Except that Erlang community makes the point about taking errors seriously much stronger
22:25:24 if something serious happens in ECL, I get a segfault. Whereas SBCL is often capable of handling it in some more graceful manner
22:25:25 p_l: right.. they handle them on a different level
22:25:51 Unix... is a mess. Though I still enjoyed ESR's TAoUP very much, including its chapter on proper, Unix-style error handling
22:26:21 p_l: but from what I gathered they don't tend to seriously think about resumption (i.e. restarts)
22:26:22 tcr: that doesn't mean it isn't possible to make ECL recover from those errors
22:26:34 it tries already
22:26:53 so yeah perhaps it's just a how many man-years were put into each implementation :-)
22:27:01 adeht: because they write assuming that the whole thing might fail and instead plan for failure or restart the whole operation at certain point
22:27:14 -!- kwinz3 [~kwinz@85.124.207.234] has quit [Ping timeout: 248 seconds]
22:27:34 -!- mstevens [~mstevens@jobs.etla.org] has quit [Quit: mstevens]
22:27:36 -!- jewel [~jewel@196-210-187-89-tbnb-esr-2.dynamic.isadsl.co.za] has quit [Ping timeout: 245 seconds]
22:27:38 p_l: yes, the point is that you don't always want to restart the whole operation :)
22:27:54 that would be the punt approach
22:28:05 adeht: well, then break it down into smaller pieces
22:28:58 kwinz3 [~kwinz@85.124.207.234] has joined #lisp
22:29:05 -!- Zephyrus [~emanuele@unaffiliated/zephyrus] has quit [Quit: ""]
22:29:13 if the operation is atomic, then I say bloody hell, it *should* punt
22:29:19 -!- varjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Quit: Leaving]
22:29:41 p_l: yep.. that's how designing robust CL systems should be possible
22:30:21 adeht: I thing the problem is more of the fact that error handling seems to be *not* taught
22:31:10 I think PCL actually exceeds the norm when it comes to error handling tutoring with its chapter on conditions. And that's general norm of what I have seen in literature.
22:31:11 p_l: correct.. that's why I mentioned the study of the subject to beach
22:31:56 I think GJS talks about that subject nowadays as well
22:31:56 most other books I've seen just show you an exception catching/handling mechanism and leave it at that.
22:32:39 rares [~rares@174-26-100-200.phnx.qwest.net] has joined #lisp
22:32:52 -!- rares1 [~rares@174-17-85-159.phnx.qwest.net] has quit [Ping timeout: 276 seconds]
22:33:59 -!- lhz [~shrekz@c-b9aa72d5.021-158-73746f34.cust.bredbandsbolaget.se] has quit [Quit: Leaving]
22:34:01 beach: I think a better tool than translation/localization of implementation would be integrating some kind of automatic code checker into SLIME (or equivalent), so that on error, it would try to locate the source and run such checker on the source inspecting the stack frame as well - so it could catch for examply misused specials etc.
22:34:20 something like Lisp Critic?
22:34:48 for example, I recall losing once at least 30 minutes because I bloody hell didn't know that Pascal defined "in" and "out" variables
22:35:34 of course, the programming environment (written apparently by our teacher), wasn't capable of telling me that and was completely useless anyway.
22:36:08 And yes, it was that "localized" Pascal as well
22:36:54 so the search space of possible keywords/defined names that I could have infringed on was twice as big.
22:42:28 -!- timor1 [~timor@port-87-234-97-27.dynamic.qsc.de] has quit [Remote host closed the connection]
22:42:33 sbahra [~sbahra@c-68-33-18-207.hsd1.md.comcast.net] has joined #lisp
22:43:23 linus5 [~user@dyn-160-39-42-66.dyn.columbia.edu] has joined #lisp
22:44:55 -!- linus5 [~user@dyn-160-39-42-66.dyn.columbia.edu] has quit [Remote host closed the connection]
22:45:46 linus5 [~user@dyn-160-39-42-66.dyn.columbia.edu] has joined #lisp
22:46:56 -!- l0stman [~l0stman@freedsl-2.blueline.mg] has quit [Quit: leaving]
22:51:39 -!- sbahra [~sbahra@c-68-33-18-207.hsd1.md.comcast.net] has quit [Quit: Leaving]
22:51:57 netytan [~netytan@85.211.40.98] has joined #lisp
22:52:25 -!- benny [~benny@i577A79C8.versanet.de] has quit [Ping timeout: 246 seconds]
22:54:19 -!- kajic [kajic@Psilocybe.Update.UU.SE] has quit [Ping timeout: 276 seconds]
22:54:21 -!- abend [~alx@076-076-146-016.pdx.net] has quit [Ping timeout: 258 seconds]
22:55:34 abend [~alx@076-076-146-016.pdx.net] has joined #lisp
22:58:14 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp
23:00:00 is there an internal cl function for adding corresponding list items? (+ '(1 3)
23:00:19 ('3 5) -> (4 8)
23:00:29 benny [~benny@i577A8074.versanet.de] has joined #lisp
23:00:52 attila_lendvai_ [~ati@89.135.205.114] has joined #lisp
23:01:14 (reduce #'+ '(1 2 3 4 5))
23:03:21 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.]
23:03:27 fatblueduck: Have a look at the various map functions.
23:04:09 -!- attila_lendvai [~ati@adsl-89-132-54-34.monradsl.monornet.hu] has quit [Ping timeout: 240 seconds]
23:04:23 nyef: ah thank you I think I found what I'm looking for
23:04:48 glogic [~rm@174.143.215.45] has joined #lisp
23:05:49 (map 'list #'+ '(1 2) '(2 5))
23:12:29 nick` [~nick@ip68-98-187-233.dc.dc.cox.net] has joined #lisp
23:12:54 beach: you committed two backup files to SICL
23:13:14 beach: Code/Conditions/conditions.lisp~ and Code/Types/types.lisp~
23:14:01 My friend here and I are having some trouble getting ASDF to work.
23:15:00 I am positive that I put a .asd file in a directory that is mentioned in the asdf:*central-registry*, but it keeps saying it cannot find it. (Using Allegro CL in Lispbox. I'll paste the things we used in a second.)
23:15:23 nick`: "put" ?
23:15:25 you copied it ?
23:15:49 Just a second. We first stuck the directory in the registry, like so: (setf asdf:*central-registry* '(*default-pathname-defaults* #p"/Users/nick/Desktop/LISPy" ))
23:16:10 Then, we try to do this: (asdf:operate 'asdf:load-op 'parenscript)
23:16:12 nick`: you're missing a final #\/
23:16:18 Ah
23:16:18 kejsaren_ [~kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp
23:16:24 You mean inside the pathname?
23:16:27 That's good to know.
23:16:33 yes
23:16:59 But it doesn't help.
23:17:22 The response to the asdf:operate is 'component "parenscript" not found'
23:17:49 is parenscript a subdirectory of /Users/nick/Desktop/LISPy/ ?
23:18:16 No, but there is a symlink to a file called parenscript.asd inside the LISPy directory.
23:19:09 lrwxr-xr-x 1 nick staff 43 Mar 27 19:18 parenscript.asd -> lispbox-0.7/parenscript-2.1/parenscript.asd
23:19:20 so LISPy/ contains a symlink to the actual parenscript.asd ?
23:19:24 -!- kejsaren [~kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Ping timeout: 276 seconds]
23:19:25 Exactly.
23:19:33 in that case, I can't see why it shouldn't work
23:19:36 Which is the one inside the directory that has the rest of parenscript inside it.
23:19:39 Me neither ;-)
23:19:45 is that a relative link or absolute?
23:19:50 relative
23:19:53 Is that a problem?
23:19:59 yes
23:20:44 Now it's absolute. Didn't fix it.
23:20:58 seems as though I had trouble with that
23:21:25 Ah. Well, thanks for the suggestion. My friend here has some experience with using Common Lisp pathnames, but it's over a decade ago ;-)
23:22:25 Note that I am not positive that ASDF can load any packages at all, since this is the first package I have tried to load with it. Lispbox seems to (strangely) set the current working directory in emacs to "/".
23:22:56 The ASDF documentation does tell you that the current working directory should always be fine (presumably because it is included in *default-pathname-defaults*)...
23:24:38 OmniMancer [~OmniMance@219-89-66-36.ipnets.xtra.co.nz] has joined #lisp
23:25:41 you can try stepping through asdf:find-system
23:25:55 Hmm... there's an idea...
23:26:28 Odin- [~sbkhh@adsl-2-92.du.snerpa.is] has joined #lisp
23:26:41 -!- Guest51763 [~user@159.92.64.121] has quit [Remote host closed the connection]
23:26:59 -!- Athas [~athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote host closed the connection]
23:28:28 fe[nl]ix: Hmm, I thought I was careful. I'll try to fix it in the morning.
23:29:52 fe[nl]ix pasted "better make-backup-file-name" at http://paste.lisp.org/display/96971
23:30:14 beach: ^ is what I use, and it has helped me a lot
23:30:29 -!- pavelludiq [~quassel@91.139.196.209] has quit [Remote host closed the connection]
23:30:43 -!- fisxoj [~fisxoj@gw-fr-vauban2.inka-online.net] has quit [Ping timeout: 276 seconds]
23:30:57 beach: just remember to create ~/.backups/
23:31:21 -!- zbigniew [~zb@3e8.org] has quit [Ping timeout: 245 seconds]
23:33:05 smanek [~smanek@static-71-249-221-129.nycmny.east.verizon.net] has joined #lisp
23:36:19 synthase [~synthase@adsl-220-161-36.mob.bellsouth.net] has joined #lisp
23:38:41 -!- attila_lendvai_ is now known as attila_lendvai
23:38:49 -!- synthasee [~synthase@adsl-220-187-4.mob.bellsouth.net] has quit [Ping timeout: 258 seconds]
23:39:03 -!- snearch [~olaf@e179134166.adsl.alicedsl.de] has quit [Quit: Ex-Chat]
23:39:58 those .asd symlinks again...
23:42:09 attila_lendvai: would you prefer ghc-pkg approach, of a separate db containing information on available ASDF system definitions to load?
23:42:20 ikki [~ikki@189.247.5.38] has joined #lisp
23:42:24 attila annotated #96971 "my emacs backup config" at http://paste.lisp.org/display/96971#1
23:42:44 p_l: I would, but that would require the use of a package manager
23:43:00 p_l, i prefer a one pager that scans a directory... http://dwim.hu/darcsweb/darcsweb.cgi?r=HEAD%20hu.dwim.asdf;a=headblob;f=/source/workspace.lisp
23:43:01 as opposed to simply downloading stuff and doing little more
23:43:39 wvdschel [~wim@78-20-14-180.access.telenet.be] has joined #lisp
23:44:11 attila_lendvai: one of my first CL hacks was something like that ;)
23:45:40 *p_l* has a recursive scanning hack in his sbclrc, haven't yet actually used it
23:45:43 adeht, that's exactly what i'm preaching but i doubt anything will change... this should be the default way advertized by asdf, otherwise newcomers start struggling with symlinks for no use... and oldtimers could fall back to symlink any time...
23:48:11 HET4 [~diman@w220.engin.cf.ac.uk] has joined #lisp
23:48:33 well, maybe have a mechanism that the user can put into asdf:*s-d-s-f*
23:49:26 upstream vanilla comes with that, too
23:50:02 you only have to enable it in your ~/.some/weird/path/asdf.conf
23:50:15 upstream asdf I mean
23:51:09 -!- HET3 [~diman@w220.engin.cf.ac.uk] has quit [Ping timeout: 240 seconds]
23:56:47 phf [~user@dhcp64-134-70-245.ssaf.orl.wayport.net] has joined #lisp
23:57:07 hello, is there a units manipulation library for common lisp?
23:58:38 -!- schoppenhauer [~css@unaffiliated/schoppenhauer] has quit [Remote host closed the connection]
23:58:54 something like http://www.isi.edu/isd/LOOM/documentation/loom4.0-release-notes.html#Units ?
23:59:37 syamajala [~syamajala@140.232.182.89] has joined #lisp
00:04:10 adeht: yes, that looks good. i take it this is tightly coupled with loom language?
00:04:31 -!- bizarrefish [~lee@host86-160-44-109.range86-160.btcentralplus.com] has quit [Ping timeout: 276 seconds]
00:04:40 phf: no.. from what I recall, it is not
00:04:55 I did not actually use it, though.. just skimmed the code
00:05:53 bizarrefish [~lee@host86-160-44-109.range86-160.btcentralplus.com] has joined #lisp
00:07:35 aquateen [~chris@c-24-18-15-69.hsd1.wa.comcast.net] has joined #lisp
00:07:38 kejsaren [~kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp
00:07:38 -!- dnolen [~dnolen@pool-71-247-120-94.nycmny.east.verizon.net] has quit [Quit: dnolen]
00:07:43 adeht: thank you, i'll give it a try
00:08:17 kerim [~kerim@81.214.22.138] has joined #lisp
00:08:25 the code isn't very pretty
00:09:06