2014-12-26T00:00:39Z pt1 quit (Remote host closed the connection) 2014-12-26T00:04:07Z mishoo joined #lisp 2014-12-26T00:04:54Z arpunk joined #lisp 2014-12-26T00:09:33Z kcj quit (Read error: Connection reset by peer) 2014-12-26T00:11:23Z Quadrescence quit (Quit: This computer has gone to sleep) 2014-12-26T00:12:53Z linux_dream joined #lisp 2014-12-26T00:14:40Z zacharias quit (Ping timeout: 244 seconds) 2014-12-26T00:17:17Z s00pcan_ joined #lisp 2014-12-26T00:17:24Z ehu quit (Ping timeout: 265 seconds) 2014-12-26T00:35:32Z stassats quit (Ping timeout: 244 seconds) 2014-12-26T00:36:36Z Joreji joined #lisp 2014-12-26T00:45:40Z towodo joined #lisp 2014-12-26T00:46:23Z goglosh joined #lisp 2014-12-26T00:46:26Z towodo quit (Client Quit) 2014-12-26T00:51:52Z mishoo quit (Ping timeout: 244 seconds) 2014-12-26T00:56:00Z s00pcan_ quit (Ping timeout: 244 seconds) 2014-12-26T00:56:44Z nydel joined #lisp 2014-12-26T01:00:13Z slyrus_ joined #lisp 2014-12-26T01:00:29Z vaporatorius quit (Remote host closed the connection) 2014-12-26T01:00:34Z slyrus quit (Ping timeout: 256 seconds) 2014-12-26T01:02:03Z slyrus_ is now known as slyrus 2014-12-26T01:03:53Z pt1 joined #lisp 2014-12-26T01:09:53Z axion: is there an equivalent of static or class fields? a means to get a slot value of a class without an instance? 2014-12-26T01:10:41Z Petit_Dejeuner: axion, Maybe class allocated slots are what you want? I don't remember much about them besides seeing them mentioned in PCL. 2014-12-26T01:10:53Z Joreji quit (Ping timeout: 240 seconds) 2014-12-26T01:11:02Z Petit_Dejeuner: Ah nm, you still need an instance. 2014-12-26T01:11:03Z cyphase quit (Read error: Connection reset by peer) 2014-12-26T01:11:09Z axion: from what i read from PCL, they don't do this. they just make it so multiple instances share the same resource instead of a copy 2014-12-26T01:11:30Z Petit_Dejeuner: Yeah, you're right. 2014-12-26T01:11:42Z Petit_Dejeuner: Maybe you don't need a static field? What do you intend to use it for? 2014-12-26T01:11:42Z kristof: I never thought I'd say this, but I guess you want a singleton. 2014-12-26T01:11:54Z Petit_Dejeuner: ^Scary words. 2014-12-26T01:11:56Z kristof: Ha. 2014-12-26T01:12:01Z echo-area quit (Read error: Connection reset by peer) 2014-12-26T01:12:11Z kristof: axion: What's the class in question? 2014-12-26T01:12:43Z kristof: axion: A class is a template for an object to be instantiated. So if you never want to instantiate an object, why would you ever need a class field? Just throw that "static field" into a var, somewhere. 2014-12-26T01:13:43Z oudeis quit (Read error: Connection reset by peer) 2014-12-26T01:14:14Z oudeis joined #lisp 2014-12-26T01:14:34Z axion: i'm trying to understand how to use sdl2kit to set the window width and height. and the only way i was able to do it was to pass in the constant values of the slots of the class it subclasses to make-instance...i don't understand why it's not working as should 2014-12-26T01:15:33Z cyphase joined #lisp 2014-12-26T01:15:39Z nisscrooge quit (Ping timeout: 245 seconds) 2014-12-26T01:17:27Z pt1 quit (Remote host closed the connection) 2014-12-26T01:18:00Z axion: i have a w and h slot in a display class with initforms that inherits sdk2kit:gl-window. but the only way it is honored is if i pass :w and :h to make-instance 2014-12-26T01:19:12Z linux_dream quit (Quit: Leaving) 2014-12-26T01:19:41Z gko quit (Ping timeout: 258 seconds) 2014-12-26T01:19:49Z Petit_Dejeuner: axion, Maybe the cosntructor is doing something funny? 2014-12-26T01:20:10Z axion: yeah likely. i just cant figure it out 2014-12-26T01:22:10Z gko joined #lisp 2014-12-26T01:22:38Z Petit_Dejeuner: axion, No methods in the superclass exposed to help you change width or height? 2014-12-26T01:23:43Z pjb: axion: (defclass my-display (display) () (:default-initargs :x 512 :y 341)) 2014-12-26T01:24:23Z axion: that seems ugly, but doable 2014-12-26T01:24:28Z axion: here's the implementation: https://github.com/lispgames/sdl2kit/blob/master/src/window.lisp#L72 2014-12-26T01:25:30Z axion: or rather, line 121 2014-12-26T01:26:55Z dagnachew quit (Quit: WeeChat 1.0.1) 2014-12-26T01:27:21Z Karl_Dscc joined #lisp 2014-12-26T01:29:06Z attila_lendvai quit (Quit: Leaving.) 2014-12-26T01:38:41Z axion: sigh. i figured it out. the stupidest mistake ever 2014-12-26T01:39:29Z tkhoa2711 joined #lisp 2014-12-26T01:41:40Z kristof quit (Quit: WeeChat 1.0.1) 2014-12-26T01:45:35Z nisscrooge joined #lisp 2014-12-26T01:49:25Z Longlius quit (Remote host closed the connection) 2014-12-26T01:51:13Z Longlius joined #lisp 2014-12-26T01:53:05Z loke joined #lisp 2014-12-26T01:58:12Z quazimodo quit (Ping timeout: 244 seconds) 2014-12-26T02:00:04Z ejbs quit (Ping timeout: 256 seconds) 2014-12-26T02:07:02Z eudoxia joined #lisp 2014-12-26T02:09:03Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-12-26T02:18:06Z KarlDscc joined #lisp 2014-12-26T02:18:08Z KarlDscc quit (Remote host closed the connection) 2014-12-26T02:19:23Z edgar-rft quit (Quit: execution finished by nuclear burnout) 2014-12-26T02:19:38Z oudeis quit (Quit: This computer has gone to sleep) 2014-12-26T02:22:09Z Karl_Dscc quit (Ping timeout: 264 seconds) 2014-12-26T02:22:41Z urandom_1 quit (Quit: Konversation terminated!) 2014-12-26T02:26:50Z hiyosi quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-12-26T02:27:26Z wws joined #lisp 2014-12-26T02:29:22Z pjb` joined #lisp 2014-12-26T02:30:06Z jtz quit (Ping timeout: 256 seconds) 2014-12-26T02:30:28Z quasisan1 joined #lisp 2014-12-26T02:30:53Z _8hzp joined #lisp 2014-12-26T02:30:53Z lemoinem quit (Killed (wilhelm.freenode.net (Nickname regained by services))) 2014-12-26T02:30:55Z lemoinem joined #lisp 2014-12-26T02:31:02Z vert2_ joined #lisp 2014-12-26T02:31:06Z enfors_ joined #lisp 2014-12-26T02:31:09Z cjmacs` joined #lisp 2014-12-26T02:31:11Z Tordek_ joined #lisp 2014-12-26T02:32:03Z gabc_ joined #lisp 2014-12-26T02:32:04Z emma_ joined #lisp 2014-12-26T02:32:06Z mtd joined #lisp 2014-12-26T02:32:11Z Anarch_ joined #lisp 2014-12-26T02:32:11Z phadthai_ joined #lisp 2014-12-26T02:32:49Z dmiles joined #lisp 2014-12-26T02:32:53Z Faed joined #lisp 2014-12-26T02:33:19Z avawn_ joined #lisp 2014-12-26T02:33:31Z cods quit (Ping timeout: 256 seconds) 2014-12-26T02:33:40Z AntiSpamMeta quit (Quit: Automatic restart triggered due to persistent lag. Freenode staff: If this is happening too frequently, please set a nickserv freeze on my account, and once my connection is stable, unfreeze the account and /kill me to trigger a reconnect.) 2014-12-26T02:33:57Z AntiSpamMeta joined #lisp 2014-12-26T02:34:04Z Kanae quit (Ping timeout: 256 seconds) 2014-12-26T02:34:10Z aerique_ joined #lisp 2014-12-26T02:34:19Z cods joined #lisp 2014-12-26T02:34:25Z Jessin joined #lisp 2014-12-26T02:34:34Z jsnell_ joined #lisp 2014-12-26T02:34:42Z flip214_ joined #lisp 2014-12-26T02:35:05Z TrafficMan joined #lisp 2014-12-26T02:35:30Z gabc quit (Disconnected by services) 2014-12-26T02:35:36Z gabc_ is now known as gabc 2014-12-26T02:35:54Z kyl__ joined #lisp 2014-12-26T02:35:58Z Neptu_ joined #lisp 2014-12-26T02:36:00Z s00pcan_ joined #lisp 2014-12-26T02:36:07Z funnel_ joined #lisp 2014-12-26T02:36:12Z antoszka_ joined #lisp 2014-12-26T02:36:22Z _main_ joined #lisp 2014-12-26T02:37:19Z Tordek_ quit (Ping timeout: 245 seconds) 2014-12-26T02:37:22Z vert2_ quit (Ping timeout: 245 seconds) 2014-12-26T02:37:23Z akkad_ joined #lisp 2014-12-26T02:38:00Z TrafficMan_ quit (Ping timeout: 264 seconds) 2014-12-26T02:38:08Z Tordek_ joined #lisp 2014-12-26T02:38:26Z vert2_ joined #lisp 2014-12-26T02:40:35Z gniourf joined #lisp 2014-12-26T02:40:43Z RenRenJuan joined #lisp 2014-12-26T02:41:26Z towodo joined #lisp 2014-12-26T02:41:44Z kapil__ joined #lisp 2014-12-26T02:43:28Z Tordek_ quit (Ping timeout: 244 seconds) 2014-12-26T02:44:05Z axion_ joined #lisp 2014-12-26T02:45:42Z echo-area joined #lisp 2014-12-26T02:46:15Z vert2_ quit (Ping timeout: 244 seconds) 2014-12-26T02:47:46Z vert2_ joined #lisp 2014-12-26T02:48:14Z stacksmith quit (Ping timeout: 258 seconds) 2014-12-26T02:48:38Z stacksmith joined #lisp 2014-12-26T02:49:20Z Jesin quit (*.net *.split) 2014-12-26T02:49:20Z hzp quit (*.net *.split) 2014-12-26T02:49:20Z Kabaka quit (*.net *.split) 2014-12-26T02:49:20Z JuanDaugherty quit (*.net *.split) 2014-12-26T02:49:20Z pjb quit (*.net *.split) 2014-12-26T02:49:20Z mtd_ quit (*.net *.split) 2014-12-26T02:49:20Z __main__ quit (*.net *.split) 2014-12-26T02:49:20Z s00pcan quit (*.net *.split) 2014-12-26T02:49:20Z dmiles_afk quit (*.net *.split) 2014-12-26T02:49:20Z billstclair quit (*.net *.split) 2014-12-26T02:49:20Z cjmacs quit (*.net *.split) 2014-12-26T02:49:20Z joast quit (*.net *.split) 2014-12-26T02:49:20Z kyl_ quit (*.net *.split) 2014-12-26T02:49:20Z quasisane quit (*.net *.split) 2014-12-26T02:49:20Z Neptu quit (*.net *.split) 2014-12-26T02:49:20Z flip214 quit (*.net *.split) 2014-12-26T02:49:20Z funnel quit (*.net *.split) 2014-12-26T02:49:20Z axion quit (*.net *.split) 2014-12-26T02:49:20Z Fade quit (*.net *.split) 2014-12-26T02:49:20Z akkad quit (*.net *.split) 2014-12-26T02:49:20Z enfors quit (*.net *.split) 2014-12-26T02:49:20Z aerique quit (*.net *.split) 2014-12-26T02:49:20Z Anarch quit (*.net *.split) 2014-12-26T02:49:21Z avawn quit (*.net *.split) 2014-12-26T02:49:21Z emma quit (*.net *.split) 2014-12-26T02:49:21Z viaken quit (*.net *.split) 2014-12-26T02:49:21Z Tordek quit (*.net *.split) 2014-12-26T02:49:21Z vert2 quit (*.net *.split) 2014-12-26T02:49:21Z jsnell quit (*.net *.split) 2014-12-26T02:49:21Z phadthai quit (*.net *.split) 2014-12-26T02:49:21Z antoszka quit (*.net *.split) 2014-12-26T02:49:26Z funnel_ is now known as funnel 2014-12-26T02:49:28Z _main_ is now known as __main__ 2014-12-26T02:49:28Z akkad_ is now known as akkad 2014-12-26T02:49:41Z axion_ quit (Quit: WeeChat 0.4.3) 2014-12-26T02:50:09Z nydel quit (Ping timeout: 258 seconds) 2014-12-26T02:50:15Z Tordek joined #lisp 2014-12-26T02:50:17Z axion joined #lisp 2014-12-26T02:52:26Z nydel joined #lisp 2014-12-26T02:55:17Z vert2_ quit (Ping timeout: 245 seconds) 2014-12-26T02:55:27Z zyaku quit (Ping timeout: 265 seconds) 2014-12-26T02:55:56Z vert2 joined #lisp 2014-12-26T02:57:53Z pppp2 joined #lisp 2014-12-26T02:58:08Z viaken joined #lisp 2014-12-26T02:59:56Z phadthai_ is now known as phadthai 2014-12-26T03:01:55Z frkout joined #lisp 2014-12-26T03:02:06Z Kabaka joined #lisp 2014-12-26T03:03:37Z ahungry quit (Ping timeout: 245 seconds) 2014-12-26T03:08:52Z Quadrescence joined #lisp 2014-12-26T03:09:31Z quazimodo joined #lisp 2014-12-26T03:23:56Z towodo quit (Quit: towodo) 2014-12-26T03:30:54Z eudoxia quit (Quit: Leaving) 2014-12-26T03:33:12Z Vutral quit (Ping timeout: 245 seconds) 2014-12-26T03:39:09Z Quadrescence quit (Quit: This computer has gone to sleep) 2014-12-26T03:39:24Z Quadrescence joined #lisp 2014-12-26T03:39:54Z Quadrescence quit (Client Quit) 2014-12-26T03:42:10Z Vutral joined #lisp 2014-12-26T03:46:42Z frkout quit (Remote host closed the connection) 2014-12-26T03:47:08Z frkout joined #lisp 2014-12-26T03:47:20Z ahungry joined #lisp 2014-12-26T03:56:05Z enitiz joined #lisp 2014-12-26T03:57:47Z araujo quit (Ping timeout: 245 seconds) 2014-12-26T04:02:31Z enitiz quit (Ping timeout: 244 seconds) 2014-12-26T04:03:08Z araujo joined #lisp 2014-12-26T04:03:11Z drdanmaku quit 2014-12-26T04:09:26Z emma_ is now known as emma 2014-12-26T04:10:34Z Jubb joined #lisp 2014-12-26T04:21:10Z drdanmaku joined #lisp 2014-12-26T04:31:26Z nikki93 joined #lisp 2014-12-26T04:34:47Z CrazyWoods quit (Ping timeout: 272 seconds) 2014-12-26T04:35:51Z akkad: can this be cleaned up more? other than parens on wrong lines? https://gist.github.com/e0ebf8653315870e35c4 2014-12-26T04:36:11Z Anarch_ is now known as Anarch 2014-12-26T04:36:21Z CrazyWoods joined #lisp 2014-12-26T04:37:10Z Zhivago: Well, the indentation seems kind of spotty. 2014-12-26T04:37:28Z akkad: asside from indentation/whitespace/paren lines 2014-12-26T04:38:06Z akkad: I'm sure the gist is horribly formatted 2014-12-26T04:38:41Z akkad: setf felt hacky 2014-12-26T04:41:30Z JamesNZ left #lisp 2014-12-26T04:43:33Z pjb` is now known as pjb 2014-12-26T04:44:05Z pjb: akkad: why don't you use http://paste.lisp.org/new as is advised in the topic of this lisp specific channel? 2014-12-26T04:44:31Z pjb: akkad: the quickload forms are betted moved to an asd file. 2014-12-26T04:45:17Z akkad: so perfect code. thanks 2014-12-26T04:45:19Z pjb: Don't use the cl-user package. It's more problem than anything else. Define your own package (defpackage "YOURS" (:use "CL" "WALKER") …) 2014-12-26T04:45:38Z nikki93 quit (Remote host closed the connection) 2014-12-26T04:45:54Z akkad: "and you need to use a different them when coding... use ligher colors.. lisp likes that better" 2014-12-26T04:46:37Z pjb: (with-open-file (defun wank-crypt (message passphrase) ; is meaningless. 2014-12-26T04:46:37Z pjb: 2014-12-26T04:47:49Z pjb: akkad: there are some surprising (illogical?) combinations. Why is there a write-line call in a function named find-file-by-name? 2014-12-26T04:48:06Z akkad: the intent was to gist just a function 2014-12-26T04:48:52Z beach joined #lisp 2014-12-26T04:49:01Z beach: Good morning everyone! 2014-12-26T04:49:02Z akkad: wank-crypt is what was suppose to be there 2014-12-26T04:49:20Z pjb: Then go make a proper paste on http://paste.lisp.org/new 2014-12-26T04:49:39Z akkad: that would require I launch a browser 2014-12-26T04:50:07Z pjb: Nope. Contrarily to 99% of the other paste services, http://paste.lisp.org/new works perfectly well in emacs w3m. 2014-12-26T04:50:25Z akkad: much less confusion this way. https://gist.github.com/da6f79e2c2f0e38e19ca 2014-12-26T04:51:18Z pjb: akkad: I'd expect a function naked wank-crypt to crypt wankily something. Not to write out messages to the standard output. 2014-12-26T04:51:36Z pjb: Remember: a function should done one thing and only one thing (and do it well). 2014-12-26T04:51:57Z pjb: Either it's computing something, or it's doing I/O, but not both. 2014-12-26T04:52:25Z pjb: Otherwise, I see a lot of SETF. This doesn't feel good. 2014-12-26T04:52:26Z akkad: excellent thank you for your insight into questions I've yet to ask. :P 2014-12-26T04:52:46Z pjb: I'm tired. Ask it to somebody else in 100 years. 2014-12-26T04:53:29Z kcj joined #lisp 2014-12-26T04:57:12Z goglosh: oh hello pjb 2014-12-26T05:06:25Z scymtym quit (Ping timeout: 252 seconds) 2014-12-26T05:08:28Z nikki93 joined #lisp 2014-12-26T05:11:09Z kcj quit (Read error: Connection reset by peer) 2014-12-26T05:12:40Z vinleod joined #lisp 2014-12-26T05:15:33Z nell quit (Read error: Connection reset by peer) 2014-12-26T05:15:51Z nell joined #lisp 2014-12-26T05:16:21Z nikki93 quit (Remote host closed the connection) 2014-12-26T05:18:52Z zRecursive joined #lisp 2014-12-26T05:19:19Z pranavrc joined #lisp 2014-12-26T05:19:48Z sw2wolf joined #lisp 2014-12-26T05:25:20Z innertracks joined #lisp 2014-12-26T05:26:42Z innertracks quit (Client Quit) 2014-12-26T05:27:50Z sw2wolf quit (Remote host closed the connection) 2014-12-26T05:32:56Z BitPuffin quit (Ping timeout: 244 seconds) 2014-12-26T05:44:45Z kcj joined #lisp 2014-12-26T05:49:02Z xach quit (Ping timeout: 189 seconds) 2014-12-26T06:01:01Z kaihaosw joined #lisp 2014-12-26T06:02:26Z kaihaosw quit (Client Quit) 2014-12-26T06:07:43Z akkad: pjb you use emacs do you paste to paste.lisp.org from it? 2014-12-26T06:08:37Z kcj quit (Ping timeout: 245 seconds) 2014-12-26T06:11:23Z drdanmaku quit (Quit: ,) 2014-12-26T06:22:27Z Quadrescence joined #lisp 2014-12-26T06:24:02Z kcj joined #lisp 2014-12-26T06:35:44Z psy quit (Read error: Connection reset by peer) 2014-12-26T06:36:39Z psy joined #lisp 2014-12-26T06:36:56Z psy quit (Read error: Connection reset by peer) 2014-12-26T06:38:57Z psy joined #lisp 2014-12-26T06:44:36Z jusss joined #lisp 2014-12-26T06:44:40Z shortCircuit__ joined #lisp 2014-12-26T06:45:39Z beach left #lisp 2014-12-26T06:48:13Z Kabaka quit (Read error: Connection reset by peer) 2014-12-26T06:50:34Z Quadrescence quit (Quit: This computer has gone to sleep) 2014-12-26T06:50:47Z Quadrescence joined #lisp 2014-12-26T06:51:19Z Quadrescence quit (Client Quit) 2014-12-26T06:51:36Z tkhoa2711 quit (Quit: tkhoa2711) 2014-12-26T06:53:27Z shortCircuit__ is now known as santaClaws_ 2014-12-26T06:56:10Z goglosh quit (Quit: gnight everybody) 2014-12-26T07:06:08Z nell quit (Ping timeout: 244 seconds) 2014-12-26T07:11:40Z ggole joined #lisp 2014-12-26T07:23:39Z loke: hello 2014-12-26T07:33:26Z ndrei joined #lisp 2014-12-26T07:37:29Z kons joined #lisp 2014-12-26T07:37:52Z sw2wolf joined #lisp 2014-12-26T07:40:04Z CrazyWoods quit (Ping timeout: 256 seconds) 2014-12-26T07:40:14Z kcj quit (Remote host closed the connection) 2014-12-26T07:40:16Z sw2wolf quit (Client Quit) 2014-12-26T07:41:04Z sw2wolf joined #lisp 2014-12-26T07:41:26Z sw2wolf quit (Client Quit) 2014-12-26T07:41:36Z CrazyWoods joined #lisp 2014-12-26T07:41:54Z sw2wolf23sd joined #lisp 2014-12-26T07:42:05Z akkad: hi :P 2014-12-26T07:43:20Z zRecursive quit (Remote host closed the connection) 2014-12-26T07:44:30Z sw2wolf23sd quit (Client Quit) 2014-12-26T07:45:40Z sw2wolf joined #lisp 2014-12-26T07:48:00Z hitecnologys quit (Ping timeout: 258 seconds) 2014-12-26T07:48:11Z Shinmera joined #lisp 2014-12-26T07:49:33Z hitecnologys joined #lisp 2014-12-26T07:51:30Z kapil__ quit (Quit: Connection closed for inactivity) 2014-12-26T07:53:17Z sw2wolf left #lisp 2014-12-26T07:58:18Z samebcha1e is now known as samebchase 2014-12-26T07:58:57Z someone quit (Ping timeout: 240 seconds) 2014-12-26T08:00:17Z girrig quit (Ping timeout: 240 seconds) 2014-12-26T08:01:43Z pnpuff joined #lisp 2014-12-26T08:03:58Z echo-area quit (Ping timeout: 250 seconds) 2014-12-26T08:04:03Z bgs100 quit (Quit: bgs100) 2014-12-26T08:07:09Z vaporatorius joined #lisp 2014-12-26T08:22:53Z kapil__ joined #lisp 2014-12-26T08:23:31Z mrkkrp joined #lisp 2014-12-26T08:24:28Z jusss is now known as woshihamo 2014-12-26T08:26:37Z mrkkrp: in cffi, when return type of C function specified as :string, will it free memory after conversion to lisp string if C function returns dynamically allocated string? 2014-12-26T08:29:46Z kcj joined #lisp 2014-12-26T08:37:10Z psy quit (Ping timeout: 255 seconds) 2014-12-26T08:38:59Z quazimodo quit (Ping timeout: 245 seconds) 2014-12-26T08:41:24Z nostoi joined #lisp 2014-12-26T08:43:58Z nand1 quit (Remote host closed the connection) 2014-12-26T08:45:57Z theos quit (Disconnected by services) 2014-12-26T08:46:24Z theos joined #lisp 2014-12-26T08:56:12Z mishoo joined #lisp 2014-12-26T08:56:13Z defaultxr quit (Quit: gnight) 2014-12-26T08:57:38Z loke: mrkkrp: no 2014-12-26T08:58:23Z loke: mrkkrp: Think of it this way: How can CFFI know what to do with the return value? 2014-12-26T09:03:46Z fantazo quit (Quit: Verlassend) 2014-12-26T09:08:17Z mrSpec joined #lisp 2014-12-26T09:11:06Z pt1 joined #lisp 2014-12-26T09:13:05Z psy_ joined #lisp 2014-12-26T09:15:19Z knosys joined #lisp 2014-12-26T09:15:36Z knosys left #lisp 2014-12-26T09:16:57Z adlai: so I want to add a keyword parameter to a genfun that currently has only required parameters. it's got a bunch of methods already defined, each in a different file. recompiling just the defgeneric with the &key added causes an error... any way to do this without freezing the world, fmakunbound-ing and redefining? 2014-12-26T09:19:40Z zajn quit (Remote host closed the connection) 2014-12-26T09:19:42Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T09:20:07Z pppp2 joined #lisp 2014-12-26T09:21:52Z Shinmera: You have to remove the methods, change their lambda-lists to match and re-compile/add them. 2014-12-26T09:22:48Z Shinmera: You can use M-x slime-inspect on the GF to remove the methods, or alternatively use something like my undefmethod macro http://plaster.tymoon.eu/view/3N 2014-12-26T09:24:08Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-12-26T09:26:54Z slyrus quit (Ping timeout: 258 seconds) 2014-12-26T09:29:45Z nostoi quit (Quit: Verlassend) 2014-12-26T09:30:05Z adlai: bleh. thx for the macro though. 2014-12-26T09:35:42Z Petit_Dejeuner quit (Read error: Connection reset by peer) 2014-12-26T09:36:07Z Petit_Dejeuner joined #lisp 2014-12-26T09:38:14Z manuel__ joined #lisp 2014-12-26T09:38:18Z pnpuff: What does it means GF? I don't think in the context it stands for Galois Field... but I don't know the meaning. 2014-12-26T09:38:19Z akkad: Why do you need to store an IV generated from a https://gist.github.com/f4471c71354d88b6ed91 in order to decode? do I need to save iv? 2014-12-26T09:38:28Z Shinmera: pnpuff: Generic Function 2014-12-26T09:38:51Z pnpuff: thanks 2014-12-26T09:49:06Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T09:49:14Z Karl_Dscc joined #lisp 2014-12-26T09:49:32Z kcj quit (Quit: kcj) 2014-12-26T09:49:42Z pppp2 joined #lisp 2014-12-26T09:50:49Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T09:51:41Z pppp2 joined #lisp 2014-12-26T09:51:55Z oleo is now known as Guest16458 2014-12-26T09:53:24Z pppp3 joined #lisp 2014-12-26T09:53:41Z oleo__ joined #lisp 2014-12-26T09:55:15Z Guest16458 quit (Ping timeout: 272 seconds) 2014-12-26T09:56:58Z pppp2 quit (Ping timeout: 264 seconds) 2014-12-26T09:59:06Z manuel__ quit (Quit: manuel__) 2014-12-26T10:01:27Z quazimodo joined #lisp 2014-12-26T10:03:45Z akkad: yeap 2014-12-26T10:03:52Z tharugrim quit (Ping timeout: 244 seconds) 2014-12-26T10:06:33Z tharugrim joined #lisp 2014-12-26T10:12:28Z towodo joined #lisp 2014-12-26T10:13:12Z towodo quit (Client Quit) 2014-12-26T10:17:11Z milosn quit (Remote host closed the connection) 2014-12-26T10:21:23Z quazimodo quit (Ping timeout: 240 seconds) 2014-12-26T10:21:35Z angavrilov joined #lisp 2014-12-26T10:24:41Z mishoo quit (Ping timeout: 252 seconds) 2014-12-26T10:25:57Z corni joined #lisp 2014-12-26T10:27:12Z quazimodo joined #lisp 2014-12-26T10:31:27Z mishoo joined #lisp 2014-12-26T10:33:27Z nydel: exists a working telnet client package for common lisp? 2014-12-26T10:33:57Z nydel: &or ssh 2014-12-26T10:34:23Z hekmek joined #lisp 2014-12-26T10:40:22Z xorox90 joined #lisp 2014-12-26T10:42:02Z ehu joined #lisp 2014-12-26T10:48:37Z jtza8 joined #lisp 2014-12-26T10:53:37Z mishoo quit (Ping timeout: 240 seconds) 2014-12-26T11:01:53Z Bicyclidine quit (Ping timeout: 240 seconds) 2014-12-26T11:03:39Z ehu quit (Ping timeout: 272 seconds) 2014-12-26T11:04:29Z Joreji joined #lisp 2014-12-26T11:09:47Z pnpuff quit (Ping timeout: 252 seconds) 2014-12-26T11:11:58Z vlnx joined #lisp 2014-12-26T11:12:52Z vlnx quit (Client Quit) 2014-12-26T11:19:27Z woshihamo quit (Remote host closed the connection) 2014-12-26T11:24:04Z jackdaniel: is there any portable library providing unix domain sockets? 2014-12-26T11:26:34Z jackdaniel: afaik usocket and iolib focus mostly on network sockets, ecl and sbcl has sb-bsd-sockets 2014-12-26T11:26:40Z milosn joined #lisp 2014-12-26T11:27:23Z jtza8 quit (Ping timeout: 240 seconds) 2014-12-26T11:34:03Z psy_ quit (Remote host closed the connection) 2014-12-26T11:37:23Z CrazyWoods quit (Quit: leaving) 2014-12-26T11:41:30Z kapil__ quit (Quit: Connection closed for inactivity) 2014-12-26T11:47:21Z eudoxia joined #lisp 2014-12-26T11:49:17Z sol__ joined #lisp 2014-12-26T11:56:27Z attila_lendvai joined #lisp 2014-12-26T12:00:08Z atgreen quit (Ping timeout: 250 seconds) 2014-12-26T12:00:16Z manuel__ joined #lisp 2014-12-26T12:00:43Z psy joined #lisp 2014-12-26T12:01:43Z kapil__ joined #lisp 2014-12-26T12:02:08Z stassats joined #lisp 2014-12-26T12:03:36Z Bicyclidine joined #lisp 2014-12-26T12:04:42Z atgreen joined #lisp 2014-12-26T12:07:03Z stassats: akkad: see the image in wikipedia, without using random data contents of the message may become apparent 2014-12-26T12:07:10Z stassats: https://en.wikipedia.org/wiki/File:Tux_ecb.jpg 2014-12-26T12:07:12Z hekmek quit (Quit: Verlassend) 2014-12-26T12:08:17Z antonv joined #lisp 2014-12-26T12:13:19Z attila_lendvai quit (Quit: Leaving.) 2014-12-26T12:14:19Z pt1 quit (Remote host closed the connection) 2014-12-26T12:18:06Z Ethan- joined #lisp 2014-12-26T12:22:37Z pppp2 joined #lisp 2014-12-26T12:23:46Z gravicappa joined #lisp 2014-12-26T12:25:10Z pppp3 quit (Ping timeout: 264 seconds) 2014-12-26T12:30:43Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T12:30:59Z s00pcan joined #lisp 2014-12-26T12:31:56Z towodo joined #lisp 2014-12-26T12:32:13Z pppp2 joined #lisp 2014-12-26T12:33:34Z corni quit (Quit: Ex-Chat) 2014-12-26T12:33:58Z pppp2 quit (Read error: No route to host) 2014-12-26T12:35:46Z BitPuffin joined #lisp 2014-12-26T12:37:14Z pppp2 joined #lisp 2014-12-26T12:38:09Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T12:39:22Z pppp2 joined #lisp 2014-12-26T12:40:42Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T12:44:31Z pranavrc quit 2014-12-26T12:48:14Z PinealGlandOptic quit (Ping timeout: 250 seconds) 2014-12-26T12:50:24Z malbertife joined #lisp 2014-12-26T12:51:53Z s00pcan quit (Ping timeout: 265 seconds) 2014-12-26T12:52:08Z pppp2 joined #lisp 2014-12-26T12:53:46Z RenRenJuan quit (Remote host closed the connection) 2014-12-26T12:55:52Z pppp3 joined #lisp 2014-12-26T12:56:27Z ehu joined #lisp 2014-12-26T12:57:21Z pppp2 quit (Ping timeout: 258 seconds) 2014-12-26T12:59:09Z EvW joined #lisp 2014-12-26T13:00:59Z PinealGlandOptic joined #lisp 2014-12-26T13:01:54Z manuel__ quit (Quit: manuel__) 2014-12-26T13:03:02Z pt1 joined #lisp 2014-12-26T13:03:03Z pppp3 quit (Read error: Connection reset by peer) 2014-12-26T13:05:57Z kaihaosw joined #lisp 2014-12-26T13:06:15Z kaihaosw quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-12-26T13:14:17Z hrs joined #lisp 2014-12-26T13:14:36Z hrs quit (Client Quit) 2014-12-26T13:16:57Z pnpuff joined #lisp 2014-12-26T13:17:49Z Mon_Ouie quit (Read error: Connection reset by peer) 2014-12-26T13:19:24Z isoraqathedh quit (Ping timeout: 245 seconds) 2014-12-26T13:20:39Z pjb: akkad: of course, I use emacs for everything, but running javascript web page (firefox). 2014-12-26T13:21:04Z pjb: Once we have a good implementation of javascript in emacs, I'll be 100% emacs compliant :-) 2014-12-26T13:21:16Z Karl_Dscc quit (Remote host closed the connection) 2014-12-26T13:25:12Z Petit_Dejeuner: axion, I'm curious. What was the bug you found? 2014-12-26T13:26:51Z isoraqathedh joined #lisp 2014-12-26T13:28:47Z pjb: Shinmera: why don't you use LAMBDA-LIST-KEYWORDS instead of your literal in undefmethod? 2014-12-26T13:28:47Z stassats quit (Remote host closed the connection) 2014-12-26T13:29:07Z stassats joined #lisp 2014-12-26T13:29:10Z jtza8 joined #lisp 2014-12-26T13:30:00Z fe[nl]ix: jackdaniel: IOlib has unix sockets 2014-12-26T13:30:57Z pnpuff quit (Ping timeout: 252 seconds) 2014-12-26T13:31:59Z pjb: Shinmera: what's the license for your undefmethod? 2014-12-26T13:32:11Z ivan4th: cl-async (master, not quicklisp verison) now has unix domain sockets, too. Spent a couple of days hacking on it and now they're there 2014-12-26T13:32:27Z ivan4th: and SPAWN 2014-12-26T13:32:47Z cpc26 joined #lisp 2014-12-26T13:32:56Z beach joined #lisp 2014-12-26T13:33:06Z beach: Good afternoon everyone! 2014-12-26T13:33:29Z pjb: nydel: I've started working on a telnet implementation (both server and client side) in CL but it's not complete yet. I don't even know if it's functional at all for now. Do you want to see the sources and work on it? 2014-12-26T13:33:49Z Mon_Ouie joined #lisp 2014-12-26T13:34:46Z nydel: pjb: yes very much, is it available somewhere right now? 2014-12-26T13:34:46Z pjb: If only I could remember in what project it's buried in… 2014-12-26T13:35:51Z nydel: i have like 50 folders called "foo" or "bar" all nested in different directions, can't find a thing. 2014-12-26T13:36:42Z Shinmera: pjb: I didn't use it because I wasn't aware of its existence! 2014-12-26T13:36:55Z Shinmera: pjb: You may do whatever you want with it. 2014-12-26T13:37:39Z nydel: i'm having more trouble on the client side of things than server when writing code 2014-12-26T13:38:18Z loke_ joined #lisp 2014-12-26T13:38:29Z nydel: e.g. my servers work if i use linux telnet to connect to them, but i can't seem to write that same type of client functionality in cl 2014-12-26T13:38:30Z pjb: nydel: ah, it's in com.informatimago.common-lisp.telnet 2014-12-26T13:38:59Z pjb: Try: (ql:quickload :com.informatimago.common-lisp.telnet) 2014-12-26T13:40:57Z nydel: loaded fine in slime 2014-12-26T13:41:00Z pjb: nydel: AFAICS, it's low level, I've not provided higher level API yet. 2014-12-26T13:41:21Z nydel: are you sticking to the telnet spec 2014-12-26T13:41:22Z gravicappa quit (Ping timeout: 255 seconds) 2014-12-26T13:41:26Z pjb: Yes. 2014-12-26T13:41:31Z pjb: Otherwise it's a bug. 2014-12-26T13:41:44Z nydel: ok understood 2014-12-26T13:41:45Z jackdaniel: fe[nl]ix: oh, then i probably missed it - thanks! 2014-12-26T13:42:14Z mathrick joined #lisp 2014-12-26T13:42:29Z pjb: nydel: for the client side, IIRC, there's another library providing it too. Perhaps iolib? 2014-12-26T13:42:54Z pjb: I wrote this telnet implementation for the server side, to be able to write telnet server applications in CL. 2014-12-26T13:43:03Z pjb: (but it does client too). 2014-12-26T13:43:49Z sol__: sup :) any way to set default value for hash-table? for example if i want a hash table to count the frequencies of char apperences in a string, i want the default val to be 0... 2014-12-26T13:44:02Z Xach: sol__: you specify it in gethash 2014-12-26T13:44:08Z Xach: sol__: e.g. (gethash char table 0) 2014-12-26T13:44:11Z nydel: this is just what i was looking for pjb thank you 2014-12-26T13:44:14Z sol__: right, thanks :) 2014-12-26T13:44:19Z Xach: sol__: common practice: (incf (gethash char table 0)) 2014-12-26T13:45:04Z pjb: Just try to avoid (incf (gethash char table (compute-a-lot-of-things-with-side-effects))) ;-) 2014-12-26T13:45:15Z towodo quit (Quit: towodo) 2014-12-26T13:47:05Z JuanDaugherty joined #lisp 2014-12-26T13:47:44Z egp_ quit (Remote host closed the connection) 2014-12-26T13:47:54Z zyaku joined #lisp 2014-12-26T13:47:58Z araujo quit (Ping timeout: 264 seconds) 2014-12-26T13:48:17Z nydel: hash tables are so neat sometimes 2014-12-26T13:49:20Z Patzy quit (Ping timeout: 250 seconds) 2014-12-26T13:49:22Z nydel: using them without values for example, just, whatever is in there means something about something 2014-12-26T13:49:31Z nydel: quick like a bunny! 2014-12-26T13:50:12Z Patzy joined #lisp 2014-12-26T13:50:38Z _5kg quit (Ping timeout: 258 seconds) 2014-12-26T13:51:46Z _5kg joined #lisp 2014-12-26T13:53:21Z pt1 quit (Remote host closed the connection) 2014-12-26T13:54:07Z nydel: how long do you think someone should write code before taking a break and how long a break? i need to change up my ratios, starting to work too long and make mistakes. 2014-12-26T13:55:36Z ggole: You should take short breaks to walk around regularly 2014-12-26T13:55:56Z zacharias joined #lisp 2014-12-26T13:55:57Z ggole: Not as a question of code quality, just because it isn't healthy to sit on your ass for long periods. 2014-12-26T13:56:16Z stassats: clhs break 2014-12-26T13:56:16Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_break.htm 2014-12-26T13:59:04Z jtza8 quit (Ping timeout: 258 seconds) 2014-12-26T14:04:59Z enitiz joined #lisp 2014-12-26T14:06:01Z enitiz quit (Read error: Connection reset by peer) 2014-12-26T14:06:29Z enitiz joined #lisp 2014-12-26T14:06:42Z enitiz quit (Read error: Connection reset by peer) 2014-12-26T14:07:12Z enitiz joined #lisp 2014-12-26T14:16:20Z octophore joined #lisp 2014-12-26T14:19:43Z araujo joined #lisp 2014-12-26T14:27:31Z oleo__ quit (Quit: Verlassend) 2014-12-26T14:28:24Z cmack joined #lisp 2014-12-26T14:30:30Z tesuji joined #lisp 2014-12-26T14:32:20Z Bicyclidine quit (Ping timeout: 244 seconds) 2014-12-26T14:33:17Z malbertife quit (Quit: Leaving) 2014-12-26T14:33:21Z oleo joined #lisp 2014-12-26T14:37:05Z milosn quit (Ping timeout: 272 seconds) 2014-12-26T14:37:40Z JuanDaugherty just ran across Norvig's intro to pythong for lisp programmers. First semi solid confirmation of the relation. 2014-12-26T14:38:23Z JuanDaugherty .oO(kina like Brie) 2014-12-26T14:39:47Z loke_: Norvig is strange. Wanting to move from Scheme (or Lisp) for CS, fine. But to Python? That just doesn't make sense. 2014-12-26T14:40:46Z stassats: there's very few programming languages that aren't similar to each other 2014-12-26T14:41:02Z stassats: intercal is not like lisp 2014-12-26T14:41:14Z stassats: but lisp has common things with algol or fortran 2014-12-26T14:42:13Z dim: was intercal ever something else than a joke? 2014-12-26T14:42:15Z JuanDaugherty: G (labview) which I'm working with, haskell, prolog, squeak, they're pretty differernt from the run of the mill algol likes, the many c dialects 2014-12-26T14:42:40Z JuanDaugherty: which I consider java, ruby, php, etc. to be 2014-12-26T14:43:30Z JuanDaugherty: http://norvig.com/python-lisp.html FTR 2014-12-26T14:45:12Z loke_: dim: no 2014-12-26T14:45:22Z stassats: it has functions, lexical scope, but what hasn't these days? 2014-12-26T14:46:11Z atgreen` joined #lisp 2014-12-26T14:46:23Z loke_: stassats: does PHP have lexical scope? 2014-12-26T14:46:38Z stassats: i don't know php 2014-12-26T14:46:42Z dim: well all I know about intercal is from reading half-humour page about maintaining its interpreter by ESR, so I shouldn't really have an opinion based solely on that 2014-12-26T14:47:31Z atgreen quit (Ping timeout: 255 seconds) 2014-12-26T14:47:49Z sol__: is it possible to "collect" (in loop for) into an array instead of a list? 2014-12-26T14:47:57Z stassats: sol__: no 2014-12-26T14:47:59Z loke_: sol__: No. 2014-12-26T14:48:07Z sol__: bummer : 2014-12-26T14:48:18Z dim: with array = (make-array ..) ... do (setf (aref array i) value) ... 2014-12-26T14:48:21Z loke_: sol__: For that to make sense, you'd need to know the length in advance anyway 2014-12-26T14:48:30Z santaClaws_ quit (Remote host closed the connection) 2014-12-26T14:48:31Z loke_: otherwise you can just use VECTOR-PUSH-EXTEND 2014-12-26T14:48:47Z _death: may also find MAP/MAP-INTO useful 2014-12-26T14:49:04Z stassats: while trying to find an intercal program, found the date of my first CL program, 2005-11-29, printing prime numbers 2014-12-26T14:49:13Z sol__: i have a local variable i'm trying to init with input from a file (numbers) 2014-12-26T14:49:16Z stassats: when i was trying to print prime numbers in as many programming languages 2014-12-26T14:49:23Z sol__: (let ((x (loop for ...))) 2014-12-26T14:49:34Z sol__: so i can't do push into x as it's not defined, right? 2014-12-26T14:49:50Z stassats: correct 2014-12-26T14:50:25Z EvW quit (Ping timeout: 244 seconds) 2014-12-26T14:50:46Z |3b| tends to just (coerce (loop collect ...) 'vector) 2014-12-26T14:50:51Z beach: sol__: Maybe something like (loop with x = (make-array ...) do (vector-push-extend ...) finally (return x)) 2014-12-26T14:51:11Z sol__: thanks beach, wasn't aware of this form 2014-12-26T14:51:30Z stassats: that'd be significantly slower than creating an array of the correct size and filling it 2014-12-26T14:51:33Z drmeister: Good morning. SLIME is awesome - that is all. 2014-12-26T14:51:38Z stassats: drmeister: good bye 2014-12-26T14:52:17Z loke_: Indeed. 2014-12-26T14:52:22Z drmeister: stassats: Thanks for your help - talk later. 2014-12-26T14:52:32Z loke_: It'd be faster to simply create a list and then convert it into a vector 2014-12-26T14:52:52Z beach: Hello drmeister 2014-12-26T14:52:55Z stassats: not always, but sometimes it'll be faster 2014-12-26T14:53:15Z nell joined #lisp 2014-12-26T14:53:16Z loke_: stassats: Depends on the CL implementation as well, of course 2014-12-26T14:53:23Z loke_: But in general, I'd say it will be 2014-12-26T14:53:29Z drmeister: I just wrote a program to transform C++ includes from relative paths to sort of absolute paths so that we can put all of Clasp's include files under /usr/include. 2014-12-26T14:53:54Z drmeister: I used Clasp/SLIME and compiled functions as I wrote and debugged them. 2014-12-26T14:54:05Z drmeister: It's fast enough. 2014-12-26T14:54:16Z loke_: drmeister: How fast is it now compared to SBCL? 2014-12-26T14:54:23Z spacebat quit (Ping timeout: 240 seconds) 2014-12-26T14:54:41Z stassats: that's one of the negative sides of dynamic languages, AREF has to work on all kinds of things 2014-12-26T14:55:03Z loke_: stassats: Isn't that why SVREF exists? 2014-12-26T14:55:06Z drmeister: I don't know, I'd have to put them side-by-side. 2014-12-26T14:55:26Z stassats: loke_: it's just a shortcut for THE 2014-12-26T14:55:35Z drmeister: I can conclusively say that this is wrong: http://stackoverflow.com/questions/6833068/why-is-llvm-considered-unsuitable-for-implementing-a-jit 2014-12-26T14:56:03Z loke_: drmeister: Did you reply to it? 2014-12-26T14:56:07Z stassats: but there isn't enough types for extensible arrays 2014-12-26T14:56:14Z ggole: LLVM has only recently become suitable, really 2014-12-26T14:56:38Z stassats: usually they are grouped together with displaced arrays, which slow things quite a bit 2014-12-26T14:56:57Z stassats: i think the standardized missed the boat by allowing multiple levels of displacement 2014-12-26T14:57:04Z drmeister: It transforms stuff like this: 2014-12-26T14:57:14Z ggole: It was missing things like support for on-stack replacement and GC 2014-12-26T14:57:18Z stassats: all those irrelevant little performance things and they didn't think that this one will kill displaced arrays 2014-12-26T14:57:28Z drmeister: https://gist.github.com/drmeister/c8452e0bdd4b49e7f893 2014-12-26T14:57:34Z drmeister: Into stuff like this: 2014-12-26T14:58:05Z drmeister: https://gist.github.com/drmeister/0a0b0be1414f3c79d2ee 2014-12-26T14:58:08Z atgreen` is now known as atgreen 2014-12-26T14:58:16Z pt1 joined #lisp 2014-12-26T14:58:19Z stassats: i think separating extensible and displaced arrays could be done in SBCL with some effort 2014-12-26T14:58:22Z spacebat joined #lisp 2014-12-26T14:58:37Z ggole: drmeister: um 2014-12-26T14:58:39Z stassats: we still have some widetags left 2014-12-26T14:58:46Z ggole: What does this have to do with JIT compilation, exactly? 2014-12-26T14:58:54Z drmeister: All of Clasp's #include directives were completely relative to the directory they were compiled from. We need them to be relative to a common root. 2014-12-26T14:59:05Z Bicyclidine joined #lisp 2014-12-26T14:59:07Z drmeister: ggole: Sorry, I'm all over the place. 2014-12-26T14:59:22Z ggole: I see, it's unrelated. That makes much more sense. 2014-12-26T15:00:13Z nell quit (Quit: WeeChat 1.1-rc1) 2014-12-26T15:00:13Z drmeister: I got SLIME working well enough that I could develop code with it. I wrote a program to transform #include directives in the Clasp source code to make it easier to distribute and install the code on other people's systems. 2014-12-26T15:00:58Z drmeister: In the process I was very gratified to see that SLIME+Clasp were fast enough to develop code interactively. I've been holding my breath for three years hoping it would be. 2014-12-26T15:01:16Z stassats: but there still won't be enough widetags to get extensible-array-unsigned-byte-8, herein lies the dynamic languages problem, can't unravel all the abstractions away 2014-12-26T15:01:46Z drmeister: Hello beach. 2014-12-26T15:02:51Z stassats: i wish there was no displaced arrays at all, they only complicate things without much use 2014-12-26T15:03:01Z stassats: now, extensible ones are much more useful 2014-12-26T15:03:04Z nell joined #lisp 2014-12-26T15:03:21Z ggole: Most dynamic languages that have to support crazy nonsense seem to speculate pretty heavily to avoid the hit 2014-12-26T15:03:35Z ggole: But that comes with its own costs. 2014-12-26T15:04:14Z Ethan- quit (Ping timeout: 258 seconds) 2014-12-26T15:05:07Z stassats: and there's no standard declaration for adjustable arrays, just (and (array (unsigned-byte 8)) (not simple-array)) 2014-12-26T15:05:20Z stassats: which drags the displaced ones too, a major oversight 2014-12-26T15:05:24Z khisanth_ joined #lisp 2014-12-26T15:06:10Z stassats: making an implementation extension is not as useful 2014-12-26T15:07:17Z Khisanth quit (Ping timeout: 240 seconds) 2014-12-26T15:08:08Z _5kg quit (Ping timeout: 272 seconds) 2014-12-26T15:09:34Z LiamH joined #lisp 2014-12-26T15:11:04Z salv0 quit (Ping timeout: 245 seconds) 2014-12-26T15:13:37Z davazp joined #lisp 2014-12-26T15:15:05Z paul0``` joined #lisp 2014-12-26T15:16:25Z dim: what about a CDR then? 2014-12-26T15:16:35Z stassats: those are worthless 2014-12-26T15:16:36Z davazp quit (Remote host closed the connection) 2014-12-26T15:16:57Z edgar-rft joined #lisp 2014-12-26T15:17:12Z dim: until someones implements them, right? 2014-12-26T15:17:38Z stassats: the practice has been that nobody does, only the authors of the said CDR 2014-12-26T15:17:47Z stassats: and maybe an odd implementation or two 2014-12-26T15:17:53Z loke_: dim: Look at the ones that exist. There might be a single one that has actually ever been impplemented, and that was only because it's a specification of an existing library 2014-12-26T15:18:34Z paul0`` quit (Ping timeout: 255 seconds) 2014-12-26T15:18:38Z loke_: OTOH, we have plenty of de-facto standards that people simple expect to work. Like BORDEAUX-THREADS. 2014-12-26T15:19:33Z stassats: and you can only add things in CDR, not remove or limit things 2014-12-26T15:19:54Z milosn joined #lisp 2014-12-26T15:20:17Z stassats: who uses displaced arrays? now, who of those uses displaced arrays to displaced arrays and expects adjust-array on the inner array affect the outermost one? 2014-12-26T15:20:18Z hiyosi joined #lisp 2014-12-26T15:20:36Z loke_: Whaaa!? 2014-12-26T15:20:45Z loke_: You can adjust displaced arrays? 2014-12-26T15:20:52Z stassats: yeah 2014-12-26T15:20:59Z loke_: that's just... bizarre. 2014-12-26T15:21:01Z stassats: so, if it were up to me, i would translate displacement to the inner layer at creation time 2014-12-26T15:21:18Z loke_: I'd like to know if there is a single application/library in use today, anywhere, that takes advantage of that 2014-12-26T15:21:18Z stassats: so, you would never have nested displacements 2014-12-26T15:21:43Z loke_: stassats: Does it cause a big performance degradation? 2014-12-26T15:21:56Z dim: I still don't know what displaced and adjusted arrays are 2014-12-26T15:22:18Z dim: any use case for those? 2014-12-26T15:22:46Z stassats: adjustable array, change the length like add new elements, very useful 2014-12-26T15:22:50Z loke_: dim: they are useful 2014-12-26T15:23:10Z stassats: displaced, make a subarray from a larger array, or make an array of different dimensions 2014-12-26T15:23:17Z stassats: not really useful 2014-12-26T15:23:58Z loke_: I sometimes do stuff like: (map-into (make-array ... :displaced-to ...) #'foo blah) 2014-12-26T15:24:22Z loke_: That's useful 2014-12-26T15:25:06Z stassats: well, it's useful for making things slower. (loop for i below (array-total-length array) do (setf (row-major-aref array i) (foo (row-major-aref array i)))) 2014-12-26T15:25:15Z dim: oh so vector-push-extend only works on adjustable arrays? 2014-12-26T15:25:22Z stassats: correct 2014-12-26T15:25:45Z dim: I tend to build arrays when I know their size... so never used them that way yet 2014-12-26T15:26:37Z dim: displaced is like providing another set of mapping for indices? 2014-12-26T15:27:00Z stassats: all arrays are actually vectors 2014-12-26T15:27:13Z loke_: dim: like in C: char *array = ...; char *displacedBy2 = array+2; 2014-12-26T15:27:24Z stassats: so, displaced arrays allow you to view different portions of those vectors in different ways 2014-12-26T15:27:28Z loke_: But more flexible 2014-12-26T15:27:58Z dim: ok 2014-12-26T15:28:04Z dim: what's the catch then? why slow? 2014-12-26T15:28:18Z stassats: bad type hierarchy, arbitrary layers 2014-12-26T15:28:36Z nikki93 joined #lisp 2014-12-26T15:28:41Z salv0 joined #lisp 2014-12-26T15:30:19Z stassats: so, a two dimensional array is just a vector with metadata about dimensions, so before doing VREF it computes the index based on this metadata 2014-12-26T15:30:19Z stassats: 2014-12-26T15:30:43Z stassats: now, a displaced array can provide different metadata, kind cute, may be useful, but i won't miss it 2014-12-26T15:30:52Z posterdati300 joined #lisp 2014-12-26T15:32:07Z dim: sounds useful in theory 2014-12-26T15:32:44Z stassats: like those infomercial products 2014-12-26T15:32:47Z dim: well sounds useful in cases where you can't imagine duplicating the memory footprint of your program 2014-12-26T15:33:20Z dim: so you pay some CPU time to compute proper indexes but still manage a single entry that fits in memory 2014-12-26T15:33:36Z urandom__ joined #lisp 2014-12-26T15:33:48Z dim: of course with nowadays machines you need to push quite hard to be unable to duplicate the array if needed 2014-12-26T15:33:49Z stassats: index computation is cheap, indirection isn't 2014-12-26T15:34:20Z towodo joined #lisp 2014-12-26T15:34:31Z stassats: a normal md array stores the data and the metadata together, but the displaced has to point to another array, which can point yet to another, etc. 2014-12-26T15:34:35Z gravicappa joined #lisp 2014-12-26T15:34:54Z dim: that's the only way not to copy memory around, right? 2014-12-26T15:35:09Z stassats: no, the other way is just to pass bounding indexes 2014-12-26T15:35:32Z dim: yeah, and stop pretending it's an array, just an "access method" 2014-12-26T15:35:36Z stassats: which is done by many functions, like string=, you don't have to SUBSEQ or displace, just pass :start1 and :end1 2014-12-26T15:35:55Z dim: which is pretty cool 2014-12-26T15:36:08Z stassats: displacement tries to hid that, but you have to allocate the metadata anyway, and due to indirection layers it gets slow 2014-12-26T15:36:10Z dim: ok I should find some energy and go finish my refactoring 2014-12-26T15:36:28Z dim: confronted to the most complicated part of it, I'm blocking 2014-12-26T15:36:31Z Mon_Ouie quit (Quit: WeeChat 1.0.1) 2014-12-26T15:37:39Z stassats: did some tests accessing 10000000 times: non displaced array, non declared: 0.060 seconds, one layer: 0.175, two: 0.182, three: 0.192 2014-12-26T15:37:41Z dim: I factored a common layer to manage "connections" to data source (either file based or database/service based), but I have to include support for that special feature I baked in, wherein you can load data from "filenames matching regexp" 2014-12-26T15:37:52Z dim: that doesn't bide well with the connection idea 2014-12-26T15:37:58Z stassats: and using SVREF: 0.030 2014-12-26T15:38:28Z dim: unless I make a new concept of a collection of connections, or a special connection that is multiple ones or something 2014-12-26T15:39:57Z pnpuff joined #lisp 2014-12-26T15:44:00Z JuanDaugherty: a connection pool is a new concept? 2014-12-26T15:44:04Z stassats: here you can see: (let* ((a1 #(1 2 3 4)) (a2 (make-array 3 :displaced-to a1 :adjustable t)) (a3 (make-array 2 :displaced-to a2))) (print a3) (adjust-array a2 3 :displaced-to a1 :displaced-index-offset 1) (print a3)) 2014-12-26T15:44:21Z stassats: try to optimize such requirements 2014-12-26T15:45:02Z yrk joined #lisp 2014-12-26T15:45:34Z yrk quit (Changing host) 2014-12-26T15:45:34Z yrk joined #lisp 2014-12-26T15:47:10Z BitPuffin quit (Quit: See you on the dark side of the moon!) 2014-12-26T15:47:53Z Joreji quit (Ping timeout: 240 seconds) 2014-12-26T15:48:35Z Grue`: suppose I need to feed all subsequences of an array into array-accepting function, and i create a displaced array that gets adjusted for each [start, end] and the function gets called on it; wouldn't the benefit of not having to allocate extra memory outweigh slower access to elements? 2014-12-26T15:49:40Z enitiz quit (Ping timeout: 256 seconds) 2014-12-26T15:50:07Z stassats: using bounding indexes is the fastest way 2014-12-26T15:50:31Z dim: JuanDaugherty: mmm, it's not a pool, it's several sources to be loaded into the same target... mmm, actually it sounds like it now 2014-12-26T15:51:01Z Grue`: yes, but conceptually having to pass start and end is ugly 2014-12-26T15:51:10Z Grue`: so it's a trade-off 2014-12-26T15:51:24Z stassats: displaced arrays aren't exactly pretty 2014-12-26T15:51:25Z joast joined #lisp 2014-12-26T15:51:31Z kapil__ quit (Quit: Connection closed for inactivity) 2014-12-26T15:51:40Z _5kg joined #lisp 2014-12-26T15:52:21Z stassats: again, limiting displacement to just one level would ease some problems 2014-12-26T15:52:57Z JuanDaugherty: dim: ah 2014-12-26T15:53:08Z stassats: so, (make-array 2 :displaced-to displaced-array) would create an array displaced to the original array 2014-12-26T15:53:13Z stassats: requiring just one indirection 2014-12-26T15:53:19Z dim: JuanDaugherty: maybe I shouldn't have used the term "connection" here 2014-12-26T15:53:23Z Grue`: maybe if sufficiently smart compiler could rewrite displaced arrays code to bound-passing code 2014-12-26T15:53:34Z stassats: not really 2014-12-26T15:53:42Z dim: but that's what it is, only it's a source connection, where you would expect a connection pool to be about a target connection, or something like that 2014-12-26T15:56:23Z BitPuffin joined #lisp 2014-12-26T15:59:32Z egp_ joined #lisp 2014-12-26T16:00:55Z gravicappa quit (Ping timeout: 252 seconds) 2014-12-26T16:01:16Z pt1 quit (Remote host closed the connection) 2014-12-26T16:01:35Z drdanmaku joined #lisp 2014-12-26T16:06:57Z milosn quit (Ping timeout: 245 seconds) 2014-12-26T16:12:28Z wheelsucker joined #lisp 2014-12-26T16:13:17Z ehu quit (Ping timeout: 240 seconds) 2014-12-26T16:17:15Z Karl_Dscc joined #lisp 2014-12-26T16:26:58Z Ukari joined #lisp 2014-12-26T16:32:43Z Joreji joined #lisp 2014-12-26T16:39:07Z farhaven quit (Ping timeout: 244 seconds) 2014-12-26T16:44:58Z milosn joined #lisp 2014-12-26T16:46:28Z EvW joined #lisp 2014-12-26T16:46:40Z innertracks joined #lisp 2014-12-26T16:49:16Z xorox90 quit (Quit: Connection closed for inactivity) 2014-12-26T16:52:51Z enitiz joined #lisp 2014-12-26T16:53:12Z innertracks quit (Quit: innertracks) 2014-12-26T16:59:40Z beach: So what is the consensus of the phrase in the Common Lisp HyperSpec section 6.1.1.7 that says: "During loop expansion, each variable in the variable list is matched with the values in the values list. If there are more variables in the variable list than there are values in the values list, the remaining variables are given a value of nil. If there are more values than variables listed, the extra values are discarded."? 2014-12-26T16:59:59Z pnpuff left #lisp 2014-12-26T17:00:05Z beach: Is it just that it was written before they generalized the "variable list" to a "variable tree"? 2014-12-26T17:00:47Z gravicappa joined #lisp 2014-12-26T17:01:04Z beach: It appears that way, because, later they say: "Note that dotted lists can specify destructuring." 2014-12-26T17:03:54Z araujo quit (Ping timeout: 250 seconds) 2014-12-26T17:04:07Z mishoo joined #lisp 2014-12-26T17:04:10Z optikalmouse joined #lisp 2014-12-26T17:04:45Z Bicyclidine quit (Ping timeout: 244 seconds) 2014-12-26T17:05:41Z araujo joined #lisp 2014-12-26T17:05:53Z mishoo quit (Read error: Connection reset by peer) 2014-12-26T17:07:17Z Grue`: maybe "variable" can recursively mean "variable list" 2014-12-26T17:07:38Z mishoo joined #lisp 2014-12-26T17:10:33Z Bicyclidine joined #lisp 2014-12-26T17:10:53Z isoraqathedh_l joined #lisp 2014-12-26T17:12:08Z beach: Maybe so. A bit strange though I think. 2014-12-26T17:12:33Z paul0```: I was trying to get some data from facebook api, and got this: #(123 34 105 100 34 58 34 49 49 51 49 53 55 51 52 57 52 34 44 34 110 97 109 101 2014-12-26T17:12:35Z paul0```: 34 58 34 80 97 117 108 111 32 71 101 121 101 114 34 125) 2014-12-26T17:12:52Z isoraqathedh quit (Ping timeout: 255 seconds) 2014-12-26T17:12:53Z mishoo quit (Ping timeout: 265 seconds) 2014-12-26T17:12:55Z Grue`: with drakma? 2014-12-26T17:12:56Z beach: Looks like character codes. 2014-12-26T17:12:56Z paul0```: this was drakma result after the http get 2014-12-26T17:12:58Z paul0```: yes 2014-12-26T17:13:09Z _death: babel:octets-to-string 2014-12-26T17:13:49Z paul0```: oh, great 2014-12-26T17:13:52Z Grue`: or (flexi-streams:octets-to-string ...) 2014-12-26T17:13:57Z |3b|: or tell drakma you want json converted to strings 2014-12-26T17:14:12Z |3b|: (assuming fb sends a proper content type) 2014-12-26T17:14:34Z _death: I always force-binary rather than try to (re-)understand that weird api 2014-12-26T17:15:01Z |3b|: see http://weitz.de/drakma/#*text-content-types* 2014-12-26T17:15:27Z shka joined #lisp 2014-12-26T17:15:37Z paul0```: (json:decode-json-from-string (babel:octets-to-string data)) 2014-12-26T17:15:41Z shka: good evening fellow lispers 2014-12-26T17:15:43Z shka: so 2014-12-26T17:15:43Z paul0```: that gives me what I want 2014-12-26T17:15:47Z paul0```: hi shka 2014-12-26T17:16:10Z shka: i'm pretty sure that i know that ranges can be implemented using clos 2014-12-26T17:16:24Z shka: but not sure what performance we can expect 2014-12-26T17:16:57Z beach: shka: What do you mean by "ranges can be implemented using clos"? 2014-12-26T17:17:15Z Grue`: mountain ranges? 2014-12-26T17:17:28Z _death: alexandrescu's? 2014-12-26T17:17:37Z shka: _death: this 2014-12-26T17:18:01Z _death: I think 'good-enough' is what we can expect :) 2014-12-26T17:18:38Z troydm quit (Ping timeout: 250 seconds) 2014-12-26T17:18:54Z shka: beach: so, ranges are a bit like C++ iterators, but a bit more evolved 2014-12-26T17:19:48Z shka: and fact that CL lacks uniform data container access abstraction is really bothering me 2014-12-26T17:20:08Z _death: shka: I once wrote a small ranges hack, and it seems well-suited for CLOS 2014-12-26T17:20:22Z enitiz quit (Ping timeout: 264 seconds) 2014-12-26T17:20:29Z shka: _death: do you think we can make it lazy for lists? 2014-12-26T17:20:40Z shka: at least end 2014-12-26T17:21:24Z shka: we would simply check if next is nil 2014-12-26T17:21:30Z shka: seems to be fairly simple 2014-12-26T17:21:57Z shka: and for non nil, we may simply gather all changes made for current 2014-12-26T17:22:17Z shka: and then we should implement python like slices 2014-12-26T17:22:18Z _death: maybe, I don't really remember what I did and that code is long gone 2014-12-26T17:22:41Z shka: and then algorithms including new map versions 2014-12-26T17:23:20Z troydm joined #lisp 2014-12-26T17:23:57Z shka: _death: code could be usefull 2014-12-26T17:24:34Z shka: i'm not a good cl programmer so any ideas would be beneficial 2014-12-26T17:28:17Z manuel__ joined #lisp 2014-12-26T17:29:21Z pjb: dim: it is not pretty cool. If you start passing start and end with all your strings, you will soon (defstruct displaced-string string start end) and you will add methods to compute the length and check that you don't go beyond the bounds defined in the structure when accessing the string thru this structure and you will be as idiotic as stassats reinventing displaced arrays. 2014-12-26T17:29:37Z stassats: i love you too 2014-12-26T17:29:53Z stassats: do you just specifically go through log and pick everything i say? 2014-12-26T17:30:04Z EvW quit (Ping timeout: 244 seconds) 2014-12-26T17:30:19Z pjb: stassats: you must understand something, is that if you don't want to hide anything, then you can't be a programmer, you must be an electronician, and use a soldering iron. 2014-12-26T17:30:35Z antoszka_ is now known as antoszka 2014-12-26T17:30:38Z pjb: stassats: Not my fault if it's you who say the biggest bullshit. 2014-12-26T17:30:59Z dim: pjb: I take it you don't like the end-year festivities season? 2014-12-26T17:31:06Z pjb: stassats: if you benchmark for speed, perhaps you could as well use C? 2014-12-26T17:31:13Z pjb: dim: :-) 2014-12-26T17:31:39Z zajn joined #lisp 2014-12-26T17:31:52Z dim: maybe you could try an educative tone rather than an aggressive one, despite the season? 2014-12-26T17:32:04Z hitecnologys: Is there more efficient way to transpose 2D array except walking though each element in a loop? 2014-12-26T17:32:26Z pjb: stassats: notice that if you have a bitblit operation to do on an array, you can always resolve the bare array from the displaced arrays you get in parameters. Same for streams, for example. I have a com.informatimago.common-lisp.cesarum.stream:bare-stream function to do that. 2014-12-26T17:32:29Z stassats: hitecnologys: swivel your monitor 2014-12-26T17:32:56Z pjb: hitecnologys: depends on what you want to optimize. One efficient way is: (lambda (a) (lambda (i j) (aref a j i))) 2014-12-26T17:33:06Z antonv` joined #lisp 2014-12-26T17:33:06Z Grue`: hitecnologys: write an accessor that reverses the indices 2014-12-26T17:33:10Z Bicyclidine quit (Ping timeout: 244 seconds) 2014-12-26T17:33:19Z pjb: it optimize for when you only access a small number of elements and don't want to copy or modify the original matrix. 2014-12-26T17:33:21Z paul0```: when I have a list like this, ((:ID . "1131573494") (:NAME . "Paulo Geyer")), what is the best way to fetch data? Using remove-if-not? 2014-12-26T17:33:22Z yeticry quit (Ping timeout: 256 seconds) 2014-12-26T17:33:36Z dim: paul0```: assoc 2014-12-26T17:33:38Z stassats: clhs assoc 2014-12-26T17:33:38Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_assocc.htm 2014-12-26T17:33:41Z pjb: paul0```: it's called an a-list. You can use assoc or rassoc. 2014-12-26T17:34:01Z Grue`: paul0```: are you using a json library? it should have built-in functions to access the key values 2014-12-26T17:34:16Z paul0```: Grue`: yes, cl-json 2014-12-26T17:34:17Z hitecnologys: I'm not really trying to optimize, I just want it shorter and cleaner. 2014-12-26T17:34:19Z Grue`: the internal representation of json shouldnt matter 2014-12-26T17:34:24Z pjb: (mapcar 'car alist) will give you the list of keys. 2014-12-26T17:34:41Z stassats: i think i get it, pjb just can't stand opinions of other people 2014-12-26T17:34:58Z scymtym joined #lisp 2014-12-26T17:35:03Z nikki93_ joined #lisp 2014-12-26T17:35:03Z stassats: so, not liking the arrays in CL is idiotic, because it doesn't align with pjb world view 2014-12-26T17:35:03Z antonv quit (Ping timeout: 272 seconds) 2014-12-26T17:35:06Z zajn quit (Remote host closed the connection) 2014-12-26T17:35:23Z hitecnologys: And I can't use custom accessors as array is :displaced-to vector afterwards and sent to foreign memory. 2014-12-26T17:35:52Z dim: stassats: you're now risking to be compared with some trolls on c.l.l. who like attacking pjb on how he likes to defend the specs 2014-12-26T17:36:01Z nikki93 quit (Read error: Connection reset by peer) 2014-12-26T17:36:04Z pjb: Grue`: have a look at com.informatimago.common-lisp.cesarum.array:nudge-displaced-vector 2014-12-26T17:36:45Z pjb: displaced arrays is one of the prettiest of Common Lisp. 2014-12-26T17:37:15Z Grue`: I am actually already using displaced arrays with a few util functions, it seemed to be the cleanest solution for my needs 2014-12-26T17:37:16Z stassats: using different accesors to access the same data may be not cache friend to your access pattern 2014-12-26T17:37:55Z pjb: Grue`: of course. The more so, because now the implementation can produce optimized code for your index/bound or pointer manipuations, instead of using generic arithmetic operations. 2014-12-26T17:38:32Z pjb: (if an implementation choose not to optimize specific operations, and prefer a more generic approach to optimization, more power to it, but that's not the question). 2014-12-26T17:38:54Z stassats: dim: that's a hostile way of defending the spec, by calling everyone who disagrees idiots 2014-12-26T17:39:45Z hvxgr joined #lisp 2014-12-26T17:39:50Z nikki93 joined #lisp 2014-12-26T17:40:01Z pjb: paul0```: notice that HTTP is a binary protocol, so a generic library cannot guess that the data is text (and in what encoding), and not, eg. a JPEG image. 2014-12-26T17:40:10Z nikki93_ quit (Read error: Connection reset by peer) 2014-12-26T17:40:11Z dim: stassats: agreed :( 2014-12-26T17:43:05Z pjb: shka: check https://groups.google.com/forum/#!msg/comp.lang.lisp/gnGCIasIrKo/o9wfrltLqxsJ and https://groups.google.com/forum/#!msg/comp.lang.lisp/uc9fLw7i0Fo/HDoDDhx3DRkJ 2014-12-26T17:44:09Z pjb: Also, closures are the general accessor generalizer. See for example: http://www.informatimago.com/articles/usenet.html#C-like-pointers-in-Lisp 2014-12-26T17:44:16Z pjb: We don't need no "smart pointer". 2014-12-26T17:47:26Z hvxgr quit (Quit: leaving) 2014-12-26T17:48:52Z dj joined #lisp 2014-12-26T17:48:59Z ebrasca joined #lisp 2014-12-26T17:49:45Z JuanDaugherty: they're a big deal in the c++ culture 2014-12-26T17:49:50Z oudeis joined #lisp 2014-12-26T17:49:58Z theseb joined #lisp 2014-12-26T17:52:52Z hvxgr joined #lisp 2014-12-26T17:53:32Z shka: JuanDaugherty: for memory managment 2014-12-26T17:53:42Z shka: pjb: thanks 2014-12-26T17:54:08Z pjb: JuanDaugherty: I mean, closures is a more general and more powerful mechanism. 2014-12-26T17:55:13Z JuanDaugherty: pjb: not exactly apples and apples 2014-12-26T17:55:39Z pjb: JuanDaugherty: you haven't read the article referenced in http://www.informatimago.com/articles/usenet.html#C-like-pointers-in-Lisp 2014-12-26T17:55:49Z s00pcan joined #lisp 2014-12-26T17:55:52Z dj quit 2014-12-26T17:56:04Z JuanDaugherty: no, thx for ref 2014-12-26T17:56:08Z hvxgr quit (Client Quit) 2014-12-26T17:56:37Z optikalmouse quit (Ping timeout: 240 seconds) 2014-12-26T17:59:46Z beach left #lisp 2014-12-26T18:00:00Z ndrei quit (Ping timeout: 256 seconds) 2014-12-26T18:01:24Z slyrus joined #lisp 2014-12-26T18:01:45Z REPLeffect_ joined #lisp 2014-12-26T18:02:09Z JuanDaugherty: prolly using anything other than striaght C in a lisp implementation if asking for trouble 2014-12-26T18:02:17Z hvxgr joined #lisp 2014-12-26T18:02:26Z JuanDaugherty: as well as being aestherically awkward 2014-12-26T18:02:31Z pjb: What do you mean? 2014-12-26T18:02:40Z JuanDaugherty: I mean using c++ 2014-12-26T18:02:50Z pjb: You'd use straight Common Lisp to implement lisp. 2014-12-26T18:02:59Z JuanDaugherty: which you would need to do for smart pointers 2014-12-26T18:02:59Z hvxgr quit (Client Quit) 2014-12-26T18:03:32Z theseb: JuanDaugherty: i did a primordial Lisp (subset) in python 2014-12-26T18:03:42Z pjb: I don't know what you're talking about. I'm saying that the what you do when you use smart pointers in C++ can be done better with lisp closures. 2014-12-26T18:03:57Z JuanDaugherty: mk 2014-12-26T18:03:58Z pjb: There's no question of using C or C++, on the contrary! 2014-12-26T18:04:12Z hvxgr joined #lisp 2014-12-26T18:04:50Z JuanDaugherty: streng verboten, eh? 2014-12-26T18:05:23Z pjb: Try to preserve your happiness, just say no to C or C++. 2014-12-26T18:05:25Z REPLeffect_ quit (Client Quit) 2014-12-26T18:06:49Z shka: JuanDaugherty: why do you actually need a smart pointer? 2014-12-26T18:06:56Z ndrei joined #lisp 2014-12-26T18:07:19Z dim: pjb: have you implemented a CL in CL already? 2014-12-26T18:07:23Z oputah joined #lisp 2014-12-26T18:07:27Z dim: s/already/yet/ maybe 2014-12-26T18:07:31Z pjb: dim: not entirely :-( 2014-12-26T18:07:38Z REPLeffect_ joined #lisp 2014-12-26T18:07:41Z dim: back to it then! ;-) 2014-12-26T18:07:50Z pjb: I've got a lisp reader, a package system, a few things :-) 2014-12-26T18:08:12Z JuanDaugherty: shka, lol, I don't need them. In current c++ they're pretty popular, use them there from boost. 2014-12-26T18:08:49Z Jubb quit (Ping timeout: 244 seconds) 2014-12-26T18:09:02Z jumblerg joined #lisp 2014-12-26T18:09:05Z Bicyclidine joined #lisp 2014-12-26T18:09:49Z hvxgr quit (Ping timeout: 245 seconds) 2014-12-26T18:10:03Z shka: JuanDaugherty: how is that related to common lisp? 2014-12-26T18:10:49Z REPLeffect_ quit (Client Quit) 2014-12-26T18:11:08Z REPLeffect_ joined #lisp 2014-12-26T18:11:43Z JuanDaugherty: by the link pjb gave? 2014-12-26T18:14:09Z shka: pjb: you don't really understand what range/iterator is, do you? 2014-12-26T18:14:37Z pjb: I think I've used iterators in C++ enough to know. 2014-12-26T18:14:45Z towodo quit (Quit: towodo) 2014-12-26T18:14:46Z pjb: Perhaps you have something else in mind? 2014-12-26T18:15:11Z girrig joined #lisp 2014-12-26T18:18:13Z yeticry joined #lisp 2014-12-26T18:18:29Z REPLeffect quit (Disconnected by services) 2014-12-26T18:18:44Z REPLeffect_ is now known as REPLeffect 2014-12-26T18:18:56Z dj joined #lisp 2014-12-26T18:18:59Z REPLeffect is now known as REPLeffec 2014-12-26T18:19:06Z REPLeffec is now known as REPLeffect 2014-12-26T18:26:54Z dim: when I have (defclass b (a) ()) and a generic fun, say gf1 with just a method specified on a, and I want to "extend" that method a little for b, that is call the one specialized on a then add some of my own code, should I prefer (call-next-method) or :after auxilliary method? 2014-12-26T18:28:17Z s00pcan quit (Ping timeout: 240 seconds) 2014-12-26T18:30:10Z attila_lendvai joined #lisp 2014-12-26T18:30:10Z attila_lendvai quit (Changing host) 2014-12-26T18:30:10Z attila_lendvai joined #lisp 2014-12-26T18:30:55Z stassats: after is always called, call-next-method only sometimes 2014-12-26T18:32:54Z shka: dim: just remember order of functions 2014-12-26T18:33:15Z shka: and be happy 2014-12-26T18:33:58Z shka: or rather methods 2014-12-26T18:34:00Z dim: I'm leaning towards :after in that very case 2014-12-26T18:34:49Z shka: well, if you need to first call a method, and then b method 2014-12-26T18:35:08Z stassats: :after also can't return any values 2014-12-26T18:35:24Z shka: right, this is also important 2014-12-26T18:36:47Z Grue`: sounds like your use-case is similar to initialize-instance, so :after would be idiomatic 2014-12-26T18:39:13Z agspathis joined #lisp 2014-12-26T18:40:03Z agspathis quit (Client Quit) 2014-12-26T18:41:34Z pnpuff joined #lisp 2014-12-26T18:41:58Z pt1 joined #lisp 2014-12-26T18:42:30Z pjb: dim: depends on whether you want to change the result or not. 2014-12-26T18:42:35Z pjb: :after can't touch the result. 2014-12-26T18:42:51Z pjb: Also, depends on how you want it to combine with further methods on c a subclass of b. 2014-12-26T18:43:45Z oputah quit (Quit: leaving) 2014-12-26T18:43:46Z slyrus quit (Ping timeout: 255 seconds) 2014-12-26T18:44:01Z hvxgr joined #lisp 2014-12-26T18:44:40Z slyrus joined #lisp 2014-12-26T18:47:22Z yeticry quit (Ping timeout: 245 seconds) 2014-12-26T18:48:39Z posterdati300 quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2014-12-26T18:49:10Z ameop joined #lisp 2014-12-26T18:49:45Z yeticry joined #lisp 2014-12-26T18:50:17Z hvxgr quit (Ping timeout: 240 seconds) 2014-12-26T18:52:47Z hvxgr joined #lisp 2014-12-26T18:52:47Z hvxgr quit (Client Quit) 2014-12-26T18:53:34Z hiyosi quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-12-26T18:55:12Z dim: the result here is the instance itself 2014-12-26T18:55:19Z dim: that I modify by means of setf 2014-12-26T18:55:35Z dim: and, I don't think I want to subclass further 2014-12-26T18:56:11Z dim: Grue`: somewhat, yes 2014-12-26T18:57:33Z towodo joined #lisp 2014-12-26T18:59:58Z Ukari quit (Ping timeout: 244 seconds) 2014-12-26T19:00:34Z hvxgr joined #lisp 2014-12-26T19:01:24Z yati_ joined #lisp 2014-12-26T19:01:28Z EvW joined #lisp 2014-12-26T19:03:30Z s00pcan joined #lisp 2014-12-26T19:09:12Z hvxgr quit (Quit: leaving) 2014-12-26T19:09:34Z hvxgr joined #lisp 2014-12-26T19:10:55Z khisanth_ is now known as Khisanth 2014-12-26T19:11:38Z hvxgr quit (Client Quit) 2014-12-26T19:13:13Z pjb: dim: by definition, you cannot know that you will want to subclass it further. 2014-12-26T19:13:22Z oudeis quit (Read error: Connection reset by peer) 2014-12-26T19:13:36Z dim: I may have to revisit that choice yes 2014-12-26T19:13:42Z pjb: That's the fatal error with final classes in java or non-virtual methods in C++. 2014-12-26T19:14:14Z theseb: do macros have corresponding environments like functions do? 2014-12-26T19:14:22Z pjb: Yes. 2014-12-26T19:14:30Z pjb: Why do you ask? 2014-12-26T19:14:43Z Bicyclidine: macros are just functions anyway. 2014-12-26T19:14:48Z stassats: (declaim (sb-ext:freeze-type class)), now you now 2014-12-26T19:14:50Z stassats: know 2014-12-26T19:14:55Z oudeis joined #lisp 2014-12-26T19:15:02Z theseb: pjb: because if a lisp implemention does the macro stuff BEFORE the eval then how does it know the environment to use? 2014-12-26T19:15:09Z Bicyclidine: it's lexical 2014-12-26T19:15:11Z Bicyclidine: same as functions 2014-12-26T19:15:23Z hvxgr joined #lisp 2014-12-26T19:15:33Z theseb: pjb: the environment is something getting adjusted and changing as eval progresses 2014-12-26T19:15:40Z stassats: there's a limited set of operators operating on environments, for that it has the &environment parameter 2014-12-26T19:15:48Z stassats: so you can use constanp or macroexpand 2014-12-26T19:15:56Z pjb: theseb: _usually_, macros are expanded, ie. their macro functions is called, in the compilation (global) environment, which may be different form the run-time (global) environment. 2014-12-26T19:16:52Z pjb: theseb: And als, there are quite some restrictions on what the macro can access, even when it's a local macro, from the lexical environment (ie. nothing). 2014-12-26T19:16:57Z pjb: s/als/also/ 2014-12-26T19:17:38Z Bicyclidine: you can have macro functions be closures with enough eval-when. would be weird to do, though 2014-12-26T19:18:05Z pjb: theseb: (defvar *stuff*) (defmacro m (x) (setf *stuff* x) `(list ',x)) *stuff* ; would be wrong: *stuff* could be filled at compilation time, and 100 years later, when we load the fast, *stuff* would be unbound. 2014-12-26T19:18:13Z pjb: fasl. 2014-12-26T19:18:15Z shka quit (Ping timeout: 244 seconds) 2014-12-26T19:18:51Z pjb: Bicyclidine: notably because you cannot save closures to fasls. 2014-12-26T19:19:31Z Bicyclidine: or any function, so i don't get the relevance? 2014-12-26T19:19:36Z theseb: my main confusion is how free variables get handled 2014-12-26T19:19:46Z pjb: There would be some funny things that could be done at run-time (image based), but not when we use a file based development process. 2014-12-26T19:19:47Z Bicyclidine: give an example. 2014-12-26T19:19:57Z theseb: iirc macros correspond to top level always 2014-12-26T19:20:24Z theseb: admittedly a lot of this is from random readings around net...some may apply to Scheme..other stuff to cL 2014-12-26T19:20:37Z pjb: theseb: if you had, they would get handled as for functions: expecting them in the lexical scope. But it would be even more problematic than for toplevel functions, so you would very strongly avoid it. 2014-12-26T19:21:05Z hvxgr quit (Quit: leaving) 2014-12-26T19:21:43Z theseb: pjb: thanks..i need to think about this some more 2014-12-26T19:21:45Z pjb: theseb: for example, one thing would be that if you mutate the variables in the closures, you've already made an impair, since you don't control the number of time a given macro call is expanded. 2014-12-26T19:21:46Z Grue`: macrolet isn't top level 2014-12-26T19:22:13Z stassats: top levelness is important only for when it's defined 2014-12-26T19:22:32Z stassats: and macrolet can be top level as well 2014-12-26T19:22:48Z stassats: and it preserves toplevelness 2014-12-26T19:23:11Z enitiz joined #lisp 2014-12-26T19:23:42Z mrkkrp: what is the easiest way to play a flac file in common lisp? 2014-12-26T19:23:51Z stassats: run-program 2014-12-26T19:24:23Z hvxgr joined #lisp 2014-12-26T19:25:09Z mrkkrp: do you mean running external program with file name as arg? 2014-12-26T19:25:15Z stassats: yes 2014-12-26T19:25:28Z pjb: There's a definite asymetry between defmacro and macrolet, since both are defined in the lexical environment, but macrolet cannot access it :-/ 2014-12-26T19:26:31Z pjb: ie: (let ((x 42)) (flet ((f () `(list ,x))) (defmacro m () (f)))) (m) --> (list 42) should work, but (let ((x 42)) (flet ((f () `(list ,x))) (macrolet ((m () (f))) (m)))) not. 2014-12-26T19:27:02Z pjb: (with care for the former, to have the macro available when needed). 2014-12-26T19:27:31Z mrkkrp: stassats, well, that's not an option :( I need something more smooth 2014-12-26T19:27:42Z yati_ quit (Remote host closed the connection) 2014-12-26T19:27:46Z stassats: mrkkrp: that's as smooth as it gets 2014-12-26T19:28:10Z mrkkrp: stassats, ok, do you know little console program that can play it and exit? 2014-12-26T19:28:20Z oudeis quit (Read error: Connection reset by peer) 2014-12-26T19:28:53Z oudeis joined #lisp 2014-12-26T19:29:08Z pjb: mrkkrp: get the flac (de)compression algorithm specification. Implement it in CL, (with-open-file (sound "/dev/dsp" :direction :output :element-type '(unsigned-byte 8)) (loop (write-byte sample))) ; can be done mostly portable, and definitely conformingly :-) 2014-12-26T19:29:26Z pjb: mrkkrp: mplayer works nicely. 2014-12-26T19:29:41Z Bicyclidine: what distros even have /dev/dsp any more? 2014-12-26T19:29:45Z kjeldahl quit (Ping timeout: 272 seconds) 2014-12-26T19:29:58Z stassats: mrkkrp: flac + aplay 2014-12-26T19:30:03Z pjb: I have it here on debian. 2014-12-26T19:30:03Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-12-26T19:30:16Z mrkkrp: pjb, if I get into this sort of things, I would use cffi + audiofile, and I wouldn't need to learn how to decompress flac 2014-12-26T19:30:29Z Grue`: mrkkrp: http://sox.sourceforge.net/ this seems perfect for your needs 2014-12-26T19:32:22Z mrkkrp: Grue`, hmm, I should try it 2014-12-26T19:32:49Z stassats: as in flac -cd file.flac | aplay 2014-12-26T19:34:37Z s00pcan quit (Ping timeout: 255 seconds) 2014-12-26T19:34:47Z mrkkrp: stassats, good idea too 2014-12-26T19:35:29Z pjb: mplayer file.flac is simpler. 2014-12-26T19:36:04Z pjb: also, mplayer has options to be driven from a pipe. 2014-12-26T19:36:40Z hiroakip joined #lisp 2014-12-26T19:38:08Z mrkkrp: pjb, I think stassats's idea is better, because flac and aplay are very common programs 2014-12-26T19:38:22Z cmack quit (Ping timeout: 265 seconds) 2014-12-26T19:38:31Z pjb: aplay --help --> bash: aplay: command not found 2014-12-26T19:38:32Z pjb: nope. 2014-12-26T19:38:41Z pjb: But mplayer is available on all my systems. 2014-12-26T19:38:51Z Bicyclidine: i have mplayer but not flac. it's just something you're going to have to mention as a dependency either way 2014-12-26T19:40:04Z kjeldahl joined #lisp 2014-12-26T19:40:14Z mrkkrp: well, it's just my personal use, for fun, an idea for language learning (natural langugage) 2014-12-26T19:41:04Z stassats: commonqt can play audio 2014-12-26T19:43:21Z oudeis quit (Read error: Connection reset by peer) 2014-12-26T19:44:12Z oudeis joined #lisp 2014-12-26T19:44:43Z theseb quit (Quit: Leaving) 2014-12-26T19:48:35Z jumblerg joined #lisp 2014-12-26T19:50:36Z Shinmera quit (Quit: しつれいしなければならないんです。) 2014-12-26T19:54:35Z kami` joined #lisp 2014-12-26T19:54:58Z kami`: Good evening. 2014-12-26T19:55:20Z kami` is now known as kami 2014-12-26T19:55:30Z hiroakip quit (Ping timeout: 250 seconds) 2014-12-26T19:57:01Z akkad: morning 2014-12-26T20:00:17Z innertracks joined #lisp 2014-12-26T20:00:17Z innertracks quit (Client Quit) 2014-12-26T20:03:15Z pnpuff left #lisp 2014-12-26T20:04:57Z adlai quit (Ping timeout: 250 seconds) 2014-12-26T20:05:42Z nikki93: hey all 2014-12-26T20:05:56Z nikki93: how can I do a defparameter but based on a symbol that is specified in a variable and varies at runtime? 2014-12-26T20:06:55Z dim: you might try your luck with (eval-when (:execute) (defparameter ...)) 2014-12-26T20:07:05Z dim: clhs eval-when 2014-12-26T20:07:06Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_eval_w.htm 2014-12-26T20:07:18Z slyrus quit (Remote host closed the connection) 2014-12-26T20:08:03Z Bicyclidine: nikki93: symbol-value 2014-12-26T20:08:12Z nikki93: Bicyclidine: yeah just got it 2014-12-26T20:08:25Z nikki93: Bicyclidine: I don't really need to define a new one, per se, so I could deal with defing it b4 2014-12-26T20:08:41Z dim: oh you want to "cache" the load-time value? 2014-12-26T20:08:55Z Bicyclidine: you can (setf (symbol-value anything) ...) without any declarations or whatever 2014-12-26T20:09:03Z dim: clhs load-time-value 2014-12-26T20:09:03Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_ld_tim.htm 2014-12-26T20:09:27Z pjb: Bicyclidine: yes. 2014-12-26T20:09:53Z Grue`: you also need to (proclaim `(special ,symbol-var)) so that it's special to match defparameter's functionality 2014-12-26T20:09:56Z pjb: The compiler wouldn't know there's a function, but the run-time would. 2014-12-26T20:10:11Z pt1 quit (Remote host closed the connection) 2014-12-26T20:10:20Z pjb: s/function/variable/ 2014-12-26T20:10:37Z pjb: Or declaim locally. 2014-12-26T20:10:39Z Grue`: granted the whole thing sounds like a giant XY problem to me 2014-12-26T20:10:44Z Bicyclidine: i figured if the symbol name varies it's probably not in code anywhere 2014-12-26T20:10:55Z pjb: exactly! 2014-12-26T20:12:03Z nikki93: nah actually it's fine guys, I can defparameter it beforehand 2014-12-26T20:12:12Z nikki93: or actually I should defvar it 2014-12-26T20:12:18Z nikki93: sounds like uber hax I know, I'm sorry :( 2014-12-26T20:16:17Z ggole quit 2014-12-26T20:16:24Z adlai joined #lisp 2014-12-26T20:18:20Z mrkkrp left #lisp 2014-12-26T20:18:37Z dayid joined #lisp 2014-12-26T20:23:00Z karswell quit (Read error: Connection reset by peer) 2014-12-26T20:24:00Z karswell joined #lisp 2014-12-26T20:25:51Z bgs100 joined #lisp 2014-12-26T20:28:21Z adlai quit (Ping timeout: 250 seconds) 2014-12-26T20:29:38Z oudeis quit (Read error: Connection reset by peer) 2014-12-26T20:30:24Z cmack joined #lisp 2014-12-26T20:30:53Z oudeis joined #lisp 2014-12-26T20:32:38Z antonv`` joined #lisp 2014-12-26T20:33:02Z dim: my reading of type-of comforts me thinking that (type-of some-instance) will always return the most specific class for that object, right? 2014-12-26T20:33:31Z gravicappa quit (Ping timeout: 258 seconds) 2014-12-26T20:34:36Z adlai joined #lisp 2014-12-26T20:34:43Z cmack quit (Ping timeout: 244 seconds) 2014-12-26T20:34:46Z antonv` quit (Ping timeout: 264 seconds) 2014-12-26T20:35:09Z Grue`: dim: also class-of 2014-12-26T20:35:32Z Grue`: type-of will actually return type, not class 2014-12-26T20:35:44Z dim: I want to use case here, so (case (type-of instance (...) (...))) 2014-12-26T20:36:00Z Grue`: so typecase then 2014-12-26T20:36:01Z dim: I could maybe provide a generic function and methods now that I think about it 2014-12-26T20:36:06Z dim: oh, typecase ;-) 2014-12-26T20:36:20Z ebrasca quit (Quit: ChatZilla 0.9.91.1 [IceCat 31.2.0/20141220044839]) 2014-12-26T20:39:43Z Bicyclidine: type-of isn't great in that casing, won't work if it's not exact and all 2014-12-26T20:40:52Z yuikov joined #lisp 2014-12-26T20:40:52Z yuikov quit (Client Quit) 2014-12-26T20:41:40Z nikki93: so I'm writing a define-system macro for defining 'system classes,' a kind of class in my thing 2014-12-26T20:41:59Z nikki93: all of them should subclass the base class called 'system.' should I splice that in in the superclass list in the macro? 2014-12-26T20:42:21Z nikki93: or should I let the user always specify it themself so that they know 2014-12-26T20:42:41Z nell quit (Quit: WeeChat 1.1-rc1) 2014-12-26T20:42:52Z Grue`: what's the point of abstraction if the user knows everything 2014-12-26T20:43:02Z nikki93: haha I guess so, good point 2014-12-26T20:43:07Z nikki93: brb splicin 2014-12-26T20:44:21Z wheelsucker quit (Quit: Client Quit) 2014-12-26T20:45:31Z nikki93: Grue`: quick question, so say I do (,@superclasses system) so that the main base class comes at the end 2014-12-26T20:46:03Z nikki93: Grue`: if the user also derives from a class, say x, so that it becomes (x system) where x is also a child of system, it's effectively as if I'm removing 'system' from that list right? 2014-12-26T20:46:24Z EvW quit (Ping timeout: 244 seconds) 2014-12-26T20:46:28Z dim: ironclad is quite heavy to compile, I guess it computes tables and stuff at this time 2014-12-26T20:46:36Z spacebat quit (Ping timeout: 256 seconds) 2014-12-26T20:46:59Z spacebat joined #lisp 2014-12-26T20:47:59Z Grue`: nikki93: IIRC it will work correctly if system is at the end of superclass list; if it was at the beginning there'd be weird ordering issues 2014-12-26T20:48:12Z stassats: dim: you mean slow? that's a regression of the new sbcl register allocator 2014-12-26T20:48:12Z nikki93: yup thats what I was checking, thx 2014-12-26T20:48:33Z pnpuff joined #lisp 2014-12-26T20:49:07Z dim: stassats: quite slow, but always has been... maybe not quite *that* slow, dunno 2014-12-26T20:49:12Z hvxgr quit (Quit: leaving) 2014-12-26T20:49:12Z dim: I'm using sbcl 1.2.2 here 2014-12-26T20:49:26Z hvxgr joined #lisp 2014-12-26T20:49:48Z dim is apparently done with the big'o'refactoring 2014-12-26T20:50:04Z stassats: big O? 2014-12-26T20:50:42Z dim: trying to have some style 2014-12-26T20:50:55Z hvxgr quit (Client Quit) 2014-12-26T20:51:00Z stassats: did you refactor everything into O(1)? 2014-12-26T20:51:54Z hvxgr joined #lisp 2014-12-26T20:52:00Z dim: in O(something) for sure 2014-12-26T20:52:07Z kjeldahl quit (Ping timeout: 250 seconds) 2014-12-26T20:52:07Z dim: something different for each item at that 2014-12-26T20:52:24Z dim: mmm, tests passing, might be time to push the huge commit 2014-12-26T20:52:36Z dim: 42 files changed, 2807 insertions(+), 2569 deletions(-) 2014-12-26T20:52:41Z Grue`: O(ackermann function) will definitely work for everything 2014-12-26T20:52:43Z dim: ah yeah, 42, that's a good number 2014-12-26T20:53:28Z stassats: (let ((sb-regalloc:*register-allocation-method* :greedy)) (time (:asd :ironclad))) => 9.6 seconds vs the default 35 seconds 2014-12-26T20:53:40Z stassats: greedy is the old default method 2014-12-26T20:54:28Z InvalidCo quit (Ping timeout: 245 seconds) 2014-12-26T20:54:47Z InvalidCo joined #lisp 2014-12-26T20:55:17Z dim: https://github.com/dimitri/pgloader/commit/302a7d402b148375fc63c886f337b20302120ba1 2014-12-26T20:55:30Z dim: that's where went my last 3 days... 2014-12-26T20:59:11Z dim: and now you can quickload pgloader then use it from lisp easily 2014-12-26T20:59:13Z dim: (pgloader:load-data :from (pgloader:parse-source-string "mysql://root@localhost/goeuro") :into (pgloader:parse-target-string "postgresql:///godollar")) 2014-12-26T20:59:40Z dim: there you have a full MySQL to PostgreSQL database migration in a single line of lisp code, at the SLIME REPL it you will ;-) 2014-12-26T21:00:19Z Posterdati: dim: are you a commodore v2 basic instruction? 2014-12-26T21:00:38Z dim: I don't understand the question 2014-12-26T21:00:50Z Posterdati: oh forget it 2014-12-26T21:01:01Z GuilOooo quit (Read error: Connection reset by peer) 2014-12-26T21:01:02Z stassats: maybe dim is just not especially bright 2014-12-26T21:01:03Z eudoxia: there's probably a 'dim' instruction in the commodore instruction set 2014-12-26T21:01:14Z GuilOooo joined #lisp 2014-12-26T21:01:34Z eudoxia: http://www.c64-wiki.com/index.php/DIM 2014-12-26T21:01:54Z dim: hehe, ok, now I get it 2014-12-26T21:02:05Z Posterdati: stassats: not for a lisp programmer :) 2014-12-26T21:02:25Z InvalidCo quit (Ping timeout: 244 seconds) 2014-12-26T21:02:25Z dim: stassats: nice one, I had it when I told on #emacs that I used to use vim, they asked me if I felt bright at the time 2014-12-26T21:02:40Z Posterdati: commodore/microsoft basic was terribly ugly, but microlisp was amazing! 2014-12-26T21:02:56Z eudoxia: dim: i've never actually used pgloader, but i want to thank you for writing it, because it's one of the largest, most complete OSS common lisp apps out there 2014-12-26T21:03:14Z dim: hey, thanks for that! 2014-12-26T21:03:32Z Posterdati: now you can change your nick 2014-12-26T21:03:33Z eudoxia: it, how do i put it, sets an example for future apps 2014-12-26T21:03:33Z dim: the thing is that I actually do need the application ;-) 2014-12-26T21:03:59Z stassats: time for protips 2014-12-26T21:04:03Z dim: after almost a decade spent writing it in python, I can only tell good things about using CL instead 2014-12-26T21:04:10Z Posterdati: do you know that commodore basic was the only software made by microsoft licensed to another company? 2014-12-26T21:04:28Z eudoxia: dim: in that sense it's also good for propaganda, esp. with the performance gains 2014-12-26T21:04:40Z dim: it's only 20 to 30 times faster ;-) 2014-12-26T21:04:54Z JuanDaugherty quit (Remote host closed the connection) 2014-12-26T21:04:55Z stassats: collect (progn (setf (second (csv-specs s-exp)) position) s-exp) is "do (setf ) and collect s-exp" 2014-12-26T21:05:09Z dim: the main gain I have from CL is that tasks that seemed impossible for me to achieve (as the only contributor) in python are now worst case a couple days work 2014-12-26T21:05:56Z dim: stassats: in the walker in src/parsers/command-parser.lisp? 2014-12-26T21:05:59Z stassats: and you have IF in the last leg of COND in process-relative-pathnames 2014-12-26T21:06:11Z stassats: dim: that was in inject-inline-data-position 2014-12-26T21:06:43Z dim: yeah I just adjusted those today from when/collect spelling that didn't work in loop the same way as in cond, so I don't really want to push them again in the loop body 2014-12-26T21:06:44Z stassats: 'pgloader.connection::path doesn't look nice 2014-12-26T21:07:16Z dim: in inject-inline-data-position I could safely change it tho 2014-12-26T21:07:57Z dim: using several packages in a big application is useful but maintaining the symbols to export not very fun 2014-12-26T21:07:59Z stassats: and in process-relative-pathnames cond again, you have (if x (progn (setf ...) s-exp) s-exp), do (when x (setf ...)) s-exp instead 2014-12-26T21:08:08Z ameop quit (Ping timeout: 256 seconds) 2014-12-26T21:08:52Z stassats: i'll add comments on github 2014-12-26T21:08:56Z angavrilov quit (Remote host closed the connection) 2014-12-26T21:09:19Z dim: well I'm fixing along the way already 2014-12-26T21:10:46Z dim: I don't really want to export pgloader.connection::path 2014-12-26T21:10:57Z dim: can I import it somehow nonetheless? 2014-12-26T21:10:58Z pnpuff left #lisp 2014-12-26T21:11:28Z stassats: you can import it, but not being external usually means that it can run away 2014-12-26T21:11:47Z stassats: and you should probably use more ECASE 2014-12-26T21:11:50Z dim: it's more that it's too generic a name for me to feel safe exporting it 2014-12-26T21:12:11Z kjeldahl joined #lisp 2014-12-26T21:12:17Z dim: in the parser, I've been moving from ecase because the checks are made by the parse rules actually 2014-12-26T21:12:44Z dim: I even had bugs because of that, where the parser would be blind to some development of the parsing tree for me not exposing enough of it 2014-12-26T21:14:55Z stassats: pgsql-execute-with-timing, (handler-case x (error (e) (declare (ignore e)))) => (handler-case x (error ())) 2014-12-26T21:15:47Z dim: nice, didn't know about that at all 2014-12-26T21:15:51Z dim: is that conforming? 2014-12-26T21:15:53Z stassats: sure 2014-12-26T21:16:01Z dim: cool 2014-12-26T21:16:45Z nell joined #lisp 2014-12-26T21:17:19Z dim: I'll push later maybe rather than piecemeal 2014-12-26T21:17:53Z vaporatorius quit (Quit: Leaving) 2014-12-26T21:18:10Z vaporatorius joined #lisp 2014-12-26T21:24:17Z isoraqathedh_l is now known as isoraqathedh 2014-12-26T21:24:33Z InvalidCo joined #lisp 2014-12-26T21:26:34Z urandom_1 joined #lisp 2014-12-26T21:26:42Z urandom__ quit (Ping timeout: 244 seconds) 2014-12-26T21:31:37Z Quadrescence joined #lisp 2014-12-26T21:32:04Z nikki93: so in common lisp it's not possible to have a macro and function named the same right? 2014-12-26T21:32:15Z stassats: right 2014-12-26T21:32:15Z pjb: right. 2014-12-26T21:32:19Z nikki93: so that you could still do #'bla while also having a bla macro which provides extra features / speed 2014-12-26T21:32:21Z stassats: nikki93: you can have compiler macros 2014-12-26T21:32:23Z nikki93: aw :( 2014-12-26T21:32:48Z stassats: not for extra features though 2014-12-26T21:33:38Z pjb: You could use a generic function for extra features. 2014-12-26T21:33:56Z pjb: And a compiler macro on the generic function. 2014-12-26T21:34:36Z nikki93: honestly, I think the macro and the func serve diff. purposes so for now I'm good (will just use diff. names) 2014-12-26T21:34:49Z Hexstream joined #lisp 2014-12-26T21:34:49Z pjb: that's the best. 2014-12-26T21:35:19Z nikki93: lol, I think I basically recreated 10% to 15% of a project I worked on in C for 8 months in a day in common lisp 2014-12-26T21:35:24Z dim: see also the the foo macro calling the call-with-foo underlying function technique 2014-12-26T21:35:33Z nikki93: and that % is better too 2014-12-26T21:35:41Z nikki93: a large part of it is I guess I have the design ideas in my head already 2014-12-26T21:35:50Z dim: nikki93: there's also the fact that you know what you're doing for having done it once, you can't ignore that 2014-12-26T21:35:56Z dim: exactly ;-) 2014-12-26T21:36:07Z Joreji quit (Ping timeout: 245 seconds) 2014-12-26T21:36:09Z nikki93: dude but it's so... shiny 2014-12-26T21:36:11Z pjb: Had the same experience when I switched to CL. 2014-12-26T21:36:19Z nikki93: I love that I can put hyphens in names 2014-12-26T21:36:19Z dim: tbh I had the same too 2014-12-26T21:36:26Z nikki93: that's the best part of CL 2014-12-26T21:36:27Z nikki93: jk 2014-12-26T21:36:51Z nikki93: is SBCL superfast yet 2014-12-26T21:37:01Z pjb: 9/10 of the C++ libraries I had were useless in CL, and the remaining 1/10 too 1/30 the LoC in CL. 2014-12-26T21:37:16Z nikki93: pjb: classic 2014-12-26T21:37:18Z pjb: s/too/took/ 2014-12-26T21:37:29Z nikki93: pjb: but not just that now you can livecode it and stuff 2014-12-26T21:37:33Z dim: ok time to stop hacking for today, been doing too much of that recently, stassats I just pushed some more fixes from your review (protips), I will do so again if you fancy leaving more messages, thanks a lot! 2014-12-26T21:37:45Z nikki93: dim: what do you guys work on 2014-12-26T21:38:13Z dim: stassats is reading a big patch I made against pgloader, https://github.com/dimitri/pgloader/commit/302a7d402b148375fc63c886f337b20302120ba1 2014-12-26T21:39:13Z stassats: i don't if it's my font, pluses and minuses, but some indentation looks suspect 2014-12-26T21:39:25Z nikki93: added more than deleted, c'mon 2014-12-26T21:39:32Z nikki93: hehe 2014-12-26T21:40:19Z dim: I fixed missing features in passing, like supporting http and archives for plain csv files and other things like that 2014-12-26T21:40:28Z dim: it was basically impossible to refrain 2014-12-26T21:40:38Z dim: stassats: it's all default emacs behavior for the indentation 2014-12-26T21:40:39Z Quadrescence: pjb, C++ templates still have no reasonable equivalent :) 2014-12-26T21:40:47Z dim: with some help for my own macros sometimes 2014-12-26T21:40:56Z stassats: and i really don't like things like (<= 7 (length coltype)) 2014-12-26T21:41:03Z nikki93: dim: do you get bad indentation some times in emacs for like when you (defmethod bla progn ...) 2014-12-26T21:41:04Z pjb: Quadrescence: of course, since in lisp, the meta language is lisp itself! 2014-12-26T21:41:06Z nikki93: dim: note the progn 2014-12-26T21:41:07Z dim: or others even, as in (put 'bind 'common-lisp-indent-function (get 'let 'common-lisp-indent-function)) (put 'register-groups-bind 'common-lisp-indent-function 2) 2014-12-26T21:41:09Z stassats: if seven is less or equal than length? who talks like that? the french? 2014-12-26T21:41:21Z pjb: You could have a bout of crazyness, and add a macro system to lisp to write macros in intercal. 2014-12-26T21:41:22Z Quadrescence: pjb, Hold on there cowboy, that's not the whole answer. 2014-12-26T21:41:31Z pjb: Yes, that is. 2014-12-26T21:41:49Z pjb: All lisp functions are generic from the get go! 2014-12-26T21:42:13Z dim: stassats: I'm following a good advice from pjb to always use < or <= in code, so that you can read the values in order, maybe that's what you're refering to? 2014-12-26T21:42:18Z pjb: stassats: mathematicians. 2014-12-26T21:42:40Z Quadrescence: pjb, Right now, though it can be a huge boon to performance, it is extremely unidiomatic and extremely difficult---if not impossible---to do proper type templating, without more generous hooks into the compiler. But I would be ecstatic to be shown otherwise. 2014-12-26T21:42:43Z tesuji quit (Ping timeout: 244 seconds) 2014-12-26T21:43:20Z stassats: dim: i'm referring to (<= 7 (length coltype)) being backwards 2014-12-26T21:43:29Z pjb: stassats: it is not backward! 2014-12-26T21:43:38Z pjb: 7 is less than length therefore it comes first. 2014-12-26T21:44:15Z pjb: You don't write x∈]∞,7] you write: x∈[7,∞[ 2014-12-26T21:44:29Z pjb: 7<=x<∞ 2014-12-26T21:44:46Z pjb: Imagine you have a finite upper boud: (<= 7 x 33) 2014-12-26T21:45:00Z dim: stassats: I used to think it's backwards but actually I think pjb comments here make sense, so I'm now using that spelling, because I read from left to right and I'm more used to read from smaller to bigger in that direction 2014-12-26T21:45:01Z Posterdati: [7, inf) 2014-12-26T21:45:19Z dim: Posterdati: that's the american way to spell [7, inf[ 2014-12-26T21:45:19Z pjb: And most notably, in language (like emacs lisp) that don't have n-ary <=, you shall write: 2014-12-26T21:45:26Z nikki93: is it better to defun a thing if ur not sure if you're ever gonna override it? (as opposed to defgeneric+defmethod) 2014-12-26T21:45:28Z Quadrescence: Use whatever allows the constant to appear first, and the parenthesized expression last. ;) 2014-12-26T21:45:32Z dim: french use [] and [[ when american use [] and [) 2014-12-26T21:45:33Z pjb: (and (<= 7 x) (< x 34)) 2014-12-26T21:46:14Z dim: Quadrescence: that's a good advice in C when using = so that the constant is on the lhs and the compiler may help you 2014-12-26T21:46:16Z stassats: dim: well, if pjb says so, then who am i to disagree 2014-12-26T21:46:19Z dim: hehe 2014-12-26T21:46:21Z stassats: natural language be damned 2014-12-26T21:46:39Z pjb: stassats: I didn't invent it: I had teacherS who advised it so! 2014-12-26T21:46:41Z dim: well, in that case, it makes sense to me really 2014-12-26T21:46:56Z pjb: Mathematics is a natural language too. 2014-12-26T21:47:00Z Quadrescence: dim, The only reason it's nice in Lisp is because things group/parenthesize better. While I don't make it an absolute rule, "stray" right parens in the middle of a line are usually a no-no. 2014-12-26T21:47:13Z Posterdati: pjb: the most one! 2014-12-26T21:47:50Z stassats: dim: well, i have a trouble reading it 2014-12-26T21:48:20Z pjb: The habit comes fast. 2014-12-26T21:48:34Z isoraqathedh: I thought the thing where you put a number on the left is called "yoda conditional". 2014-12-26T21:48:39Z pjb: Like 0-based indexing. 2014-12-26T21:48:58Z stassats: you can learn to walk on your hands quite fast too 2014-12-26T21:49:02Z Quadrescence: isoraqathedh, that is usually what it's called in C and friends 2014-12-26T21:49:46Z stassats: in C, things are so dire, in order not to assign something inadvertently, they do 7 == var, so that if you type "=" by accident, the compiler complains 2014-12-26T21:50:38Z cmack joined #lisp 2014-12-26T21:50:41Z pjb: In C, it's very natural to write the constant on the left: (zerop x) ≍ (0== x) (plusp x) ≍ (0<= x) etc. 2014-12-26T21:51:18Z stassats: breastfeeding is natural, this is not 2014-12-26T21:51:20Z pjb: #define zerop 0== #define plusp 0<= (zerop x) && (plusp y) 2014-12-26T21:51:34Z pjb: stassats: you're not a lisper then :-) 2014-12-26T21:51:52Z stassats: of course i am not 2014-12-26T21:52:02Z pjb: Oops, #define plusp 0< 2014-12-26T21:52:38Z dim: stassats: yeah it reads a little strange in simple cases like that, but I found it helps me when debugging to have the values in the "natural" order 2014-12-26T21:53:10Z dim: I made so many logic bugs in my programming activities that I'm quite warry of them now, and I do find that trick helpful 2014-12-26T21:53:30Z dim: anyway, I understand that preferences may vary 2014-12-26T21:53:41Z Quadrescence: Huge quotes around "natural" 2014-12-26T21:54:00Z Quadrescence: It is natural in math to say x > 7. It is natural to have other orderings aside from ascending. ;) 2014-12-26T21:56:00Z nell quit (Quit: WeeChat 1.1-rc1) 2014-12-26T21:56:29Z stassats: dim: (format nil "~a" c) => (princ-to-string c) 2014-12-26T21:56:30Z nikki93: tbh (<= min val max) is pretty sweet 2014-12-26T21:56:36Z nikki93: so what is lisp bad at 2014-12-26T21:56:40Z nikki93: seems like everything is working out 2014-12-26T21:56:45Z Bicyclidine: not causing arguments, mainly 2014-12-26T21:56:48Z Xach: nikki93: volume and breadth of reusable code 2014-12-26T21:57:13Z nikki93: Xach: u mean like libraries to be found? 2014-12-26T21:57:24Z dim: quicklisp helps a lot 2014-12-26T21:57:29Z eudoxia: that is, however, improving 2014-12-26T21:57:33Z nikki93: ya quicklisp is sweet 2014-12-26T21:57:34Z Quadrescence: nikki93, graphics, types, type abstractions, advanced delivery technology, standardization of features found post 1995 2014-12-26T21:57:38Z Xach: There are many great libraries, but relatively speaking, less than other environments. 2014-12-26T21:57:43Z eudoxia: dim: quicklisp helps for installing libraries, but it won't write libraries 2014-12-26T21:57:55Z eudoxia: Xach: of course 2014-12-26T21:57:55Z dim: stassats: in transforms I guess? 2014-12-26T21:58:01Z nikki93: Quadrescence: graphics yeah.. that's sorta what I'm into. like games and stuff. cl-opengl is sweet tho 2014-12-26T21:58:05Z stassats: dim: what is the point of initialize-instance :after ((source copy-ixf) &key) in (compile nil (lambda ()))? 2014-12-26T21:58:12Z oleo quit (Ping timeout: 245 seconds) 2014-12-26T21:58:19Z stassats: that's where the format is coming from also 2014-12-26T21:58:26Z stassats: what is the point of COMPILE NIL, specifically 2014-12-26T21:58:39Z dim: I don't need a name for it? 2014-12-26T21:58:53Z oleo joined #lisp 2014-12-26T21:58:54Z stassats: what is the point of COMPILE? what do you think it does? 2014-12-26T21:59:15Z dim: yeah I don't know ;-) 2014-12-26T21:59:18Z nikki93: compiling things compiles inside things too IIRC 2014-12-26T21:59:32Z stassats: dim: so, get rid of it 2014-12-26T21:59:35Z dim: doing os 2014-12-26T21:59:37Z dim: so 2014-12-26T21:59:49Z zajn joined #lisp 2014-12-26T22:00:25Z isoraqathedh quit (Ping timeout: 255 seconds) 2014-12-26T22:00:44Z Guest53776 quit (Quit: perl for ever) 2014-12-26T22:00:44Z Quadrescence: nikki93, Here's my dirty laundry list http://web.archive.org/web/20140711171553/http://symbo1ics.com/blog/?p=2316 2014-12-26T22:00:50Z isoraqathedh joined #lisp 2014-12-26T22:01:05Z dim: done 2014-12-26T22:01:39Z keen__________14 joined #lisp 2014-12-26T22:02:00Z stassats: Quadrescence: what does CAPI do so well that Qt is junk compared to it? 2014-12-26T22:02:01Z pjb: Quadrescence: you can't say lisp is bad a graphics: computer graphics (2D, 3D, animated) were basically invented on Lisp Machines! 2014-12-26T22:02:17Z keen__________13 quit (Ping timeout: 240 seconds) 2014-12-26T22:02:22Z Quadrescence: pjb, I am talking about modern day stuff 2014-12-26T22:02:30Z Quadrescence: stuff thats accessible to Most People 2014-12-26T22:02:37Z Quadrescence: stassats, I dunno, no one could get it to work anywhere I worked 2014-12-26T22:02:53Z pjb: Say that there's a lack of investment in lisp, yes. 2014-12-26T22:03:06Z Quadrescence: without hacking the shit out of it. and yes i use an expletive because it was a nightmare 2014-12-26T22:03:25Z stassats: Quadrescence: get to work what exactly? 2014-12-26T22:03:25Z pjb: Like people who'd rather spend their time debugging a CFFI to the flac library written in C, rather than implement the FLAC algorithm in lisp! 2014-12-26T22:04:13Z towodo quit (Quit: towodo) 2014-12-26T22:04:15Z Quadrescence: stassats, I don't remember the details. Everything throughout the pipeline. I recall it was only possibly marginally okay if you used SBCL on Linux on x86. 2014-12-26T22:04:32Z Petit_Dejeuner: pjb, That I'll never understand. I'm probably just trivializing the effort it takes to write most C code, but still. 2014-12-26T22:04:34Z Quadrescence: CCL was awful with it with CCL's reader macros, for instance. All of was awful on Mac. 2014-12-26T22:04:43Z octophore quit (Quit: Bye) 2014-12-26T22:04:50Z pjb: Quadrescence: also, have a look at: http://www.tele-task.de/archive/video/flash/14029/ it would be easier to do that in lisp than in what they use (and there's also an ometa in lisp if you insist on this convoluted way). 2014-12-26T22:05:04Z stassats: Quadrescence: well, that sounds like you're talking about commonqt 2014-12-26T22:05:08Z Petit_Dejeuner: er, not most C code, but rather most libraries written in C code 2014-12-26T22:05:13Z stassats: but it works on all the thins you're descrbing 2014-12-26T22:05:23Z stassats: on ccl, on sbcl, on linux, windows and mac 2014-12-26T22:05:32Z Quadrescence: stassats, CommonQt does? 2014-12-26T22:05:36Z stassats: on x86 and x86-64 2014-12-26T22:05:50Z Quadrescence: Well then my coworkers and I must have hugely missed out on something. 2014-12-26T22:05:52Z pjb: Quadrescence: I think I never wrote x>7 in any Math problem ever. 2014-12-26T22:05:58Z pjb: I had good teachers. 2014-12-26T22:06:27Z Quadrescence: pjb, It's in the first sentence of every undergraduate analysis textbook there is. 2014-12-26T22:06:34Z Quadrescence: "Let epsilon > 0." 2014-12-26T22:07:02Z stassats: i reckon it should also work on ARM, but i need to try that 2014-12-26T22:07:11Z pjb: In France we write: ∀ε, 0<ε … 2014-12-26T22:07:14Z stassats: or i did already? 2014-12-26T22:07:33Z stassats: right, it works on ARM linux too, bad memory 2014-12-26T22:07:35Z dagnachew joined #lisp 2014-12-26T22:07:37Z Quadrescence: stassats, I'll give it a shot another time, to be fair. 2014-12-26T22:08:02Z Posterdati: Quadrescence: I do not share your ideas on graphics with CL, I developed an OpenGL program to draw data from an IMU in 2 hours... 2014-12-26T22:08:15Z stassats: the hardest part usually is to get the right libraries, they usually come on bundled on linux, and for Windows you can download binaries on the commonqt site 2014-12-26T22:08:17Z stassats: not for mac 2014-12-26T22:08:26Z stassats: well, i don't have a mac 2014-12-26T22:08:55Z Posterdati: Quadrescence: I think you must separate the driver from the car and it's engine... 2014-12-26T22:08:59Z pjb: libraries can be obtained easily enough on mac with MacPort or even brew. 2014-12-26T22:09:22Z nikki93 quit (Read error: Connection reset by peer) 2014-12-26T22:09:27Z nikki93_ joined #lisp 2014-12-26T22:09:35Z stassats: really? 2014-12-26T22:09:46Z Quadrescence: Posterdati, I've used OpenGL before too. I hardly call it a "good experience". In CAPI I could get a scientific animation up in minutes. 2014-12-26T22:10:14Z ndrei quit (Ping timeout: 245 seconds) 2014-12-26T22:10:20Z stassats: Quadrescence: and with the help of drmeister's clasp it should become even better and require less boilerplate libraries 2014-12-26T22:10:31Z pjb: So Lisp has excelent graphics capabilities, if you can get a scientific animation up in minutes! 2014-12-26T22:10:41Z Quadrescence: pjb, And I noted that CAPI was good! 2014-12-26T22:11:10Z pjb: See, somebody invested in lisp, and we get excelent results. 2014-12-26T22:11:13Z pjb: My point. 2014-12-26T22:11:16Z nikki93_ quit (Read error: Connection reset by peer) 2014-12-26T22:11:52Z nikki93 joined #lisp 2014-12-26T22:11:58Z Quadrescence: I agree, investing in Lisp will produce excellent results. Ideally those investments would result in open source things, 2014-12-26T22:13:54Z stassats: Quadrescence: and outside of Lisp, i don't think there's a better solution for portable GUI 2014-12-26T22:14:53Z enitiz quit (Ping timeout: 240 seconds) 2014-12-26T22:15:00Z nikki93: is there a quick way to list special vars in a package 2014-12-26T22:15:05Z Quadrescence: stassats, My favorite example for doing simple graphics is actually FreeBASIC. It doesn't do native GUI widgets, or even GUI widgets at all, but every distribution automatically comes with a set of drawing primitives that you can use, out of the box. 2014-12-26T22:15:36Z pjb: CL has them too: bit-arrays! 2014-12-26T22:15:42Z Xach: nikki93: not quick, no. 2014-12-26T22:16:05Z stassats: nikki93: in slime package:* 2014-12-26T22:16:15Z araujo quit (Ping timeout: 258 seconds) 2014-12-26T22:16:22Z nikki93: stassats: nice 2014-12-26T22:16:23Z funnel quit (Ping timeout: 252 seconds) 2014-12-26T22:17:29Z funnel joined #lisp 2014-12-26T22:18:02Z Quadrescence: pjb, I know what you're thinking and saying and so on, but sorry, that's a highly unacceptable answer. ;) 2014-12-26T22:18:11Z nikki93: k guys lisp is awesome, confirmed 2014-12-26T22:18:20Z nikki93: shit program I wrote just... worked 2014-12-26T22:18:25Z Quadrescence: It is entirely possible to write a graphics library. No one denies that, and they've existed. That's not the problem. 2014-12-26T22:18:41Z nikki93: and like macros r cool, omg 2014-12-26T22:19:06Z nikki93: Quadrescence: yo my vision is to make a game engine for live coding games. hopefully that'll make lisp graphics life better, just games tho 2014-12-26T22:19:22Z pjb: Quadrescence: we just need some packaging, documentation and ease of use for newbies, something that Allegro and Lispworks provide for a fee. 2014-12-26T22:19:22Z Quadrescence: That would be great if you did that! 2014-12-26T22:19:44Z pjb: Anytime a startup billionaire wants to invest on opensource lisp! 2014-12-26T22:20:03Z nikki93: Quadrescence: I basically want to redo what I did in C + Lua real fast then make it even better 2014-12-26T22:20:16Z nikki93: Quadrescence: http://ludumdare.com/compo/2014/08/27/reminisce-post-mortem/ <-- some pics etc. it has an in-game editor where you can click and drag and change stuff like the SLIME inspector 2014-12-26T22:20:19Z pjb: I mean, Microsoft invested on Python, they could have done it as well with lisp. 2014-12-26T22:20:25Z nikki93: Quadrescence: and you can code while playing and save/load whenever you want 2014-12-26T22:20:48Z Quadrescence: nikki93, reminds me of freebasic, except for live coding. :) 2014-12-26T22:22:23Z araujo joined #lisp 2014-12-26T22:23:32Z Quadrescence: ( http://www.freebasic.net/wiki/wikka.php?wakka=DocToc ; graphics library reference in the bottom left ) 2014-12-26T22:23:52Z yenda joined #lisp 2014-12-26T22:24:41Z pjb: We have a ton of graphic libraries in CL… 2014-12-26T22:24:59Z araujo quit (Max SendQ exceeded) 2014-12-26T22:25:01Z Quadrescence: pjb, Yes and we have a ton of CL implementations too. 2014-12-26T22:25:07Z Quadrescence: Every one of them is good at a few things. 2014-12-26T22:25:50Z araujo joined #lisp 2014-12-26T22:26:05Z pjb: And if this basic graphic libraries is so great, nothing prevents you to implement this API over one of the existing CL graphic library, or entirely anew. 2014-12-26T22:26:36Z Quadrescence: pjb, Again, we are back to "nothing prevents X from Y". I am not disputing that. 2014-12-26T22:26:45Z Quadrescence: I contribute where I can. :) 2014-12-26T22:26:54Z pjb: Yes, it's only a question of resources. We all do, as much as we can. 2014-12-26T22:27:39Z stassats: sure, together with the flac decoder 2014-12-26T22:27:45Z Quadrescence: :) 2014-12-26T22:27:52Z pjb: But to motivate newbies, better to show them that Lisp could do the 3D animation graphics for Playboy in the early 80s when Pixar wasn't even a dream yet. 2014-12-26T22:28:04Z nikki93: if you're making a game would you put enemy creation logic stuff in initialize-instance 2014-12-26T22:28:07Z nikki93: or have a separate init method 2014-12-26T22:28:22Z nikki93: and keep initialize-instance more about the data structure 2014-12-26T22:28:35Z stassats: "Pixar began in 1979 as the Graphics Group" 2014-12-26T22:28:38Z stassats: just saying 2014-12-26T22:28:57Z pjb: https://www.youtube.com/watch?v=V4HXPJtym2Q 2014-12-26T22:29:21Z Quadrescence: nikki93, what is "enemy creation" if not doing something to a data structure? 2014-12-26T22:29:45Z nikki93: like, I dunno, making a noise or something 2014-12-26T22:29:51Z nikki93: k if it's a bullet then making the firing noise 2014-12-26T22:30:05Z nikki93: although you could argue the gun should do that but you see where I'm going with this right 2014-12-26T22:30:19Z nikki93: side effects stuff 2014-12-26T22:30:29Z Quadrescence: I would not put that in the initialize-instance method because you might want to do some more clever things later, like caching or resource pooling 2014-12-26T22:30:51Z Quadrescence: Creation as a data structure is distinct from appearance/interaction. :) 2014-12-26T22:31:03Z nikki93: hmm ok 2014-12-26T22:32:30Z pjb: https://www.youtube.com/watch?v=gV5obrYaogU 2014-12-26T22:32:40Z Posterdati: Quadrescence: in Common Lisp class is not the most important datatype like in c++... 2014-12-26T22:33:05Z Quadrescence: Posterdati, huh? 2014-12-26T22:33:17Z Quadrescence: I never said it was? 2014-12-26T22:34:17Z Posterdati: I'm still reading your blog 2014-12-26T22:34:49Z stassats: "int" is the most important datatype 2014-12-26T22:35:04Z Posterdati: "An Interface/API Mechanism" 2014-12-26T22:35:04Z Quadrescence: Posterdati, did I imply that somewhere? 2014-12-26T22:35:15Z Posterdati: stassats: no function 2014-12-26T22:35:58Z stassats: Posterdati: that's just a bunch of integers 2014-12-26T22:36:00Z nikki93: Posterdati: I guess in the lambda calculus like theoretical stuff yeah, but common lisp is based in actual computers and 'important' is hard to say I guess 2014-12-26T22:36:06Z Quadrescence: Posterdati, I don't think I implied it there either. All I was saying is that the only native notion of an "API" in Lisp is the collection of exported symbols of a package. And hopefully the author wrote documentation. 2014-12-26T22:36:41Z pjb: That said, it will depend on the kind of application. 2014-12-26T22:37:05Z pjb: In some applications, arrays of floats will be more important. In some other, lists of symbols, and in some other CLOS objects. 2014-12-26T22:37:24Z oudeis quit (Quit: This computer has gone to sleep) 2014-12-26T22:39:15Z Posterdati: Quadrescence: I had that feelings since API and interfaces are strictly a c/c++ concepts... 2014-12-26T22:39:42Z Posterdati: Quadrescence: especially class in c++... 2014-12-26T22:40:12Z Bicyclidine: API is not a strictly C or C++ concept. What the heck? 2014-12-26T22:40:15Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-12-26T22:40:28Z innertracks joined #lisp 2014-12-26T22:40:38Z innertracks quit (Client Quit) 2014-12-26T22:41:09Z otwieracz joined #lisp 2014-12-26T22:41:25Z otwieracz: Hey. 2014-12-26T22:41:33Z otwieracz: How much you *do not like* Clojure? 2014-12-26T22:41:44Z stassats: otwieracz: 4 2014-12-26T22:41:53Z jumblerg joined #lisp 2014-12-26T22:41:54Z Bicyclidine: six, personally 2014-12-26T22:42:07Z otwieracz: In scale from 0 to ten? 2014-12-26T22:42:10Z |3b| dislikes it almost exactly the amount it causes people to come into #lisp to ask about it 2014-12-26T22:42:20Z Bicyclidine: no, on a scale from apples to scissors 2014-12-26T22:42:29Z stassats: from 0 to 1 mile per h 2014-12-26T22:42:31Z otwieracz: |3b|: Wait, wait - I used to write in Common Lisp. 2014-12-26T22:42:38Z pjb: 9 but i would have to revise when/if i know it better. 2014-12-26T22:42:49Z nikki93 quit (Read error: Connection reset by peer) 2014-12-26T22:43:07Z otwieracz: |3b|: but OpenCV is greatly supported in Clojure. 2014-12-26T22:43:07Z nikki93 joined #lisp 2014-12-26T22:43:27Z otwieracz: |3b|: And I am willing to start some real work with OpenCV, and I will love to do it in Lisp. 2014-12-26T22:43:45Z |3b|: so do so? 2014-12-26T22:43:47Z otwieracz: |3b|: And just doing research if it's worth to fuck with Clojure. 2014-12-26T22:44:07Z otwieracz: |3b|: Or should I try to use cl-opencv. 2014-12-26T22:44:37Z |3b|: well, #lisp says no, #clojure says yes, exactly the same as every other time someone comes in wanting us to tell them if they should like it or not 2014-12-26T22:45:44Z |3b|: expect some work if you try to use cl-opencv, expect to be off-topic in #lisp if you use clojure 2014-12-26T22:46:48Z |3b|: and if that's what you want to know, ask that instead of random "how much do you not like it" questions... we could dislike it quite a bit and still thing it is a better option for some specific task 2014-12-26T22:46:57Z eudoxia: someone who doesn't have a backlog of projects massive enough to collapse into a black hole should probably port https://github.com/fogleman/pg to cl-opencv 2014-12-26T22:47:09Z eudoxia: i mean, derp, i though we were talking about cl-opengl 2014-12-26T22:49:00Z notalanturing joined #lisp 2014-12-26T22:49:21Z |3b|: eudoxia: maybe you would be interested in https://github.com/lispgames/glkit (though probably not as complete yet) 2014-12-26T22:49:45Z eudoxia: |3b|: i don't really care about games, it's just a library that would be useful 2014-12-26T22:50:20Z stassats: does opengl make it easy to work with common GUI thinks like copy-pasting, drag and drop, etc? 2014-12-26T22:50:43Z |3b|: stassats: opengl completely ignores that stuff 2014-12-26T22:50:51Z |3b|: it can't even open a window 2014-12-26T22:50:56Z stassats: so, what do you need? 2014-12-26T22:50:57Z pppp2 joined #lisp 2014-12-26T22:50:57Z stassats: glut? 2014-12-26T22:51:42Z |3b|: to create a window and do GUI stuff? lots of things work to varying extents... glut, sdl, qt, raw OS APIs 2014-12-26T22:52:15Z stassats: so, what is the benefit in using opengl to create GUI? 2014-12-26T22:52:24Z undata joined #lisp 2014-12-26T22:52:47Z eudoxia: it's for 3d stuff 2014-12-26T22:52:54Z stassats: it has 2d stuff too 2014-12-26T22:53:00Z |3b|: fancy effects, possibly access to driver features 2014-12-26T22:53:14Z eudoxia: otwieracz: what do you use for OpenCV in Clojure? 2014-12-26T22:53:16Z joga: are there libraries for handling module music formats (like .mod, .s3m, .xm etc)? 2014-12-26T22:53:27Z joga: not actually playing, but generating them etc 2014-12-26T22:53:36Z |3b|: depends on what your alternative options are what the benefits are 2014-12-26T22:53:42Z otwieracz: eudoxia: Well - I am not using Clojure *yet*. 2014-12-26T22:53:54Z otwieracz: eudoxia: I have to do some more or less complex feature extraction. 2014-12-26T22:53:56Z stassats: |3b|: software rendering? 2014-12-26T22:54:12Z eudoxia: otwieracz: ok. i just wanted to know if there was any one library that was particularly good, since i have a habit of picking good libraries from other ecosystems and porting them to CL :> 2014-12-26T22:54:23Z otwieracz: eudoxia: :) 2014-12-26T22:54:32Z stassats: how complex an UI should be to benefit from hardware acceleration? 2014-12-26T22:54:33Z |3b|: compared to software rendering, i'd say the big thing would be performance, and built-in compositing/alpha/etc 2014-12-26T22:54:46Z otwieracz: stassats: No requirements from UI. 2014-12-26T22:54:59Z stassats: i always see people wanting opengl interfaces, but i never see them, and don't quite get the whole idea 2014-12-26T22:55:09Z |3b|: not just complex, i wouldn't want to be redrawing 4k screens and dumping them across the bus all the time 2014-12-26T22:55:16Z otwieracz: |3b|: I used to write in CL, I fallen in love - and that's why CL society word is the one I value. 2014-12-26T22:55:25Z stassats: |3b|: but for your old CRUD, would opengl make it better? 2014-12-26T22:55:28Z |3b|: stassats: sure you do... browsers are using directx or gl for rendering 2014-12-26T22:55:30Z eudoxia: stassats: i suspect the idea is they want lower-level control than what they get with GUI apps 2014-12-26T22:55:46Z otwieracz: |3b|: So I do not matter about #clojure opinion - I believe to yours. 2014-12-26T22:56:18Z |3b|: otwieracz: i'd say "fix cl-opencv", but then that's just because i might want to use the ficed version at some point :) 2014-12-26T22:56:20Z stassats: |3b|: maybe on windows or os x 2014-12-26T22:56:35Z otwieracz: |3b|: Have you tried it? Is it usable? 2014-12-26T22:56:39Z eudoxia: otwieracz: you might be interested in a combination of https://github.com/melisgl/mgl and https://github.com/slyrus/opticl 2014-12-26T22:57:03Z otwieracz: eudoxia: I have taken a look at opticl. 2014-12-26T22:57:13Z |3b|: otwieracz: i used a few functions, most of which i had to bind myself 2014-12-26T22:57:27Z stassats: so, if i have a GUI, there won't be an immediate benefit to the user if it's done using OpenGL, or software rendering, or what have i 2014-12-26T22:57:30Z otwieracz: |3b|: Roger that. Sound's not good :) 2014-12-26T22:57:41Z eudoxia: otwieracz: personally i'm a little apprehensive about opticl, mainly because it's not opencv, and computer vision is something i know very little about so i trust social proof more than my own judgement ;) 2014-12-26T22:57:55Z |3b|: stassats: if you just want to write an application, i wouldn't bother unless it was doing lots of 3d. For a new clim or other gui lib, i would use GL 2014-12-26T22:58:37Z |3b|: if it is fast enough without GL, and users don't care about the fancy effects, it probably won't matter to them 2014-12-26T22:59:21Z enitiz joined #lisp 2014-12-26T22:59:28Z stassats: i'm more thinking for the developer users using the framework 2014-12-26T22:59:29Z |3b|: GL might let it scale a bit better, or save developer time from optimization or implementing various features 2014-12-26T22:59:40Z stassats: i think the most important thing is enough useful widgets 2014-12-26T22:59:56Z otwieracz: eudoxia: But, according that I do not know OpenCV and ML at all, and I just have to create PoC, it might be better idea to keep using something well tutorialed and tested :) 2014-12-26T22:59:59Z |3b|: yeah, that is probably more important 2014-12-26T23:00:18Z |3b|: actually, doesn't qt render through GL now? 2014-12-26T23:00:23Z oleo quit (Quit: Verlassend) 2014-12-26T23:00:23Z eudoxia: otwieracz: of course 2014-12-26T23:00:28Z stassats: that's why i like Qt, it has lots of them, and they get developed/improved, while i sit doing nothing 2014-12-26T23:00:30Z |3b| thought i saw that mentioned at some point, though maybe just as an option 2014-12-26T23:00:31Z stassats: |3b|: optionally 2014-12-26T23:00:49Z stassats: except that commonqt doesn't yet work on qt 5 2014-12-26T23:01:13Z optikalmouse joined #lisp 2014-12-26T23:01:45Z |3b|: for most things with UI below a 3d modeler or game, i'd probably pick qt 2014-12-26T23:01:59Z |3b|: over trying to implement GUI stuff in pure GL 2014-12-26T23:02:20Z |3b|: (well, aside from liking to NIH stuff) 2014-12-26T23:02:31Z stassats: the design is a hard part, picking something like the Google's material design could be a start 2014-12-26T23:03:24Z eudoxia quit (Read error: Connection reset by peer) 2014-12-26T23:03:28Z stassats: make mcclim with material design, everyone will forget about the bugs 2014-12-26T23:04:34Z |3b|: GL based GUI is also nice when you want to embed the GUI in a 3d scene, not a particularly common concern at the moment though (and will probably get handled by GUI libs anyway) 2014-12-26T23:04:41Z ameop joined #lisp 2014-12-26T23:05:14Z stassats: and how good is font rendering with opengl? 2014-12-26T23:05:17Z dobby156 joined #lisp 2014-12-26T23:05:24Z |3b|: non-existant? 2014-12-26T23:05:37Z |3b|: or phrased differently, "as good as you want to make it" 2014-12-26T23:05:41Z dobby156: hi, if lisp programs are valid s-expressions, how are conditions represented? 2014-12-26T23:05:52Z dobby156: *conditionals, ie if 2014-12-26T23:06:03Z stassats: as an s-expression 2014-12-26T23:06:21Z |3b|: GL has lots of primitives that can be used for font rendering, including near arbitrary programmability, but doesn't have any concept of a font built-in 2014-12-26T23:06:44Z stassats: ok, i don't think i'll move away from Qt anytime soon 2014-12-26T23:06:51Z Quadrescence: dobby156, If C programs are valid strings of text, how are conditionals represented? 2014-12-26T23:06:55Z stassats: too much work with too little benefit 2014-12-26T23:07:16Z |3b|: yeah, opengl doesn't replace qt 2014-12-26T23:07:26Z stassats: if machine instructions are valid bits, how is anything represented 2014-12-26T23:07:36Z stassats: |3b|: i get that, but i mean making anything my own 2014-12-26T23:07:41Z stassats: |3b|: at least while X11 is still alive 2014-12-26T23:08:30Z dobby156: Quadrescence: using keywords 2014-12-26T23:08:50Z stassats: or maybe the web will catch up to native interfaces in the next 10 years 2014-12-26T23:09:01Z stassats: dobby156: what is a keyword? 2014-12-26T23:09:02Z Quadrescence: dobby156, then the analogous answer is that lisp uses special forms 2014-12-26T23:09:54Z pjb: dobby156: so what's your question? 2014-12-26T23:10:04Z Quadrescence: special s-expressions that are interpreted differently because a particular special symbol, a special operator, appears in the first position of the s-expression 2014-12-26T23:10:44Z dobby156: Right thanks, that's pretty much what I was after 2014-12-26T23:10:51Z pjb: Quadrescence: there are several conditional operators in CL, and most of them ARE NOT special operators! 2014-12-26T23:10:54Z Petit_Dejeuner: How can an expression be a conditional? http://en.wikipedia.org/wiki/%3F: 2014-12-26T23:10:59Z Zhivago: Although you could do functional cpnditionals instead if you wanted to. 2014-12-26T23:11:09Z Quadrescence: pjb, sigh 2014-12-26T23:11:24Z pjb: COND is a macro. TYPECASE is a macro, etc. 2014-12-26T23:11:43Z pjb: REMOVE-IF is a function! 2014-12-26T23:12:03Z Quadrescence: pjb, sometimes i think you take imprecision in a question far too liberally 2014-12-26T23:12:46Z zophy joined #lisp 2014-12-26T23:12:55Z stassats: they all ultimately use IF, the special operator 2014-12-26T23:13:12Z Zhivago: Consider true as a function returning its first argument and false the second. Then your conditional returns the appropriate function. 2014-12-26T23:13:25Z stassats: right, short of doing what Zhivago is describing 2014-12-26T23:13:50Z pjb: stassats: not necessarily. An implementation could implemet COND as a special operator, provide a COND macro that expand to IF, and implement IF as macro that expand to COND! 2014-12-26T23:13:50Z dobby156: Quadrescence: thanks, sorry if my terminology was off I simply pondering the example on wikipedia 2014-12-26T23:14:11Z Petit_Dejeuner: pjb, Isn't that non-standard? 2014-12-26T23:14:18Z pjb: Nope, standard. 2014-12-26T23:14:38Z Petit_Dejeuner: Why does the hyperspec only refer to 'if' as a special form? http://www.lispworks.com/documentation/lw60/CLHS/Body/s_if.htm 2014-12-26T23:14:44Z stassats: except that nobody will think of doing it that way 2014-12-26T23:15:00Z Petit_Dejeuner: Becuase it's LispWorks? 2014-12-26T23:15:03Z stassats: Petit_Dejeuner: because it's the simplest and most logical choice for a special operator 2014-12-26T23:15:15Z Zhivago: Because special form is only revelant to code walkers. 2014-12-26T23:15:19Z stassats: lispworks just hosts the spec, it was done by a committee 2014-12-26T23:15:23Z Petit_Dejeuner: stassats, Alright, that answers another question I was going to ask. 2014-12-26T23:15:51Z Zhivago: Here it is being conflated with buultin operators. 2014-12-26T23:15:55Z pjb: dobby156: if you're asking about ternary IF, then since in CL we don't distinguish between statement and expression, but have only expressions, the normal IF is actually a ternary IF! (+ (if (zerop (random 2)) 2 3) x) 2014-12-26T23:16:09Z eudoxia joined #lisp 2014-12-26T23:16:25Z pjb: dobby156: but also: (+ (cond ((plusp x) 1) ((zerop x) 0) ((minusp x) -1)) z) 2014-12-26T23:16:27Z pjb: etc. 2014-12-26T23:16:46Z stassats: Zhivago: it's pretty close 2014-12-26T23:16:47Z dobby156: pjb: okay, basically the premise to my question was this: I am reading the sexpr page on wikipeda 2014-12-26T23:17:03Z dobby156: pjb: it shows a graph for ( * 2 ( + 3 4 ) ) 2014-12-26T23:17:08Z dobby156: all well and good 2014-12-26T23:17:11Z Petit_Dejeuner: Depending on the type of operator different things will happen. 2014-12-26T23:17:13Z stassats: Zhivago: since you can't fake your away without IF 2014-12-26T23:18:10Z dobby156: pjb: then it say 'examples of source code...' and gives a lisp fragment, I was just wondering what the eqivelant tree would be for that. 2014-12-26T23:19:05Z stassats: dobby156: s-exprs are less specialized than C syntax 2014-12-26T23:19:21Z stassats: so, both function calls and conditional expressions look the same 2014-12-26T23:19:24Z towodo joined #lisp 2014-12-26T23:19:36Z stassats: but when compiled or interpreted, the have different semantics 2014-12-26T23:19:57Z manuel__ quit (Quit: manuel__) 2014-12-26T23:20:05Z stassats: so, if you have (if 2 (+ 3 4)), you can replace IF with LIST, and will still be valid 2014-12-26T23:20:23Z towodo quit (Client Quit) 2014-12-26T23:20:40Z stassats: in fact, any object is a valid s-expression, not all of them represent valid lisp programs 2014-12-26T23:20:54Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T23:21:05Z dobby156: stassats: yep I know that, that's fine. 2014-12-26T23:21:38Z stassats: same thing with machine code, everything is just bytes, but when interpreted it acquires new meaning 2014-12-26T23:22:37Z eudoxia quit (Quit: Leaving) 2014-12-26T23:22:40Z pjb: (if (= a b) 0 1) is a three node labelled with IF and with 3 children: a subtree (= a b) and two leaves 0 and 1. 2014-12-26T23:22:46Z pjb: s/three/tree/ 2014-12-26T23:23:18Z stassats: dobby156: and you can represent C programs with S-expressions as well 2014-12-26T23:24:18Z usrj joined #lisp 2014-12-26T23:24:58Z nikki93: Quadrescence: alright, it's happening 2014-12-26T23:25:07Z nikki93: Quadrescence: I'm about to upload a youtube vid, brace yourself 2014-12-26T23:25:22Z dobby156: pjb: right okay, and the way in which that is interpretted is by the label 2014-12-26T23:25:23Z Quadrescence: :) 2014-12-26T23:25:45Z pjb: dobby156: be careful, because a mapping of sexp to tree is not something fixed and obvious in all cases. 2014-12-26T23:26:30Z pjb: dobby156: for example, if you write an infix macro that transform a sexp containing an infix expression, then what is your "tree"? (infix (3 * (2 + 4))) --> (* 3 (+ 2 4)) 2014-12-26T23:26:51Z pjb: What if you embed it in another sexp: (/ (infix (3 * (2 + 4))) 4) ? 2014-12-26T23:28:10Z pjb: dobby156: so, there is a Lisp evaluation model (more precisely, a Common Lisp evaluation model, a scheme evaluation model, and emacs lisp evaluation mode (there are differences)), and you should use it to interpret a sexp as code. 2014-12-26T23:28:18Z chrisb joined #lisp 2014-12-26T23:28:37Z dobby156: yep, that's helpful thanks. 2014-12-26T23:28:52Z towodo joined #lisp 2014-12-26T23:29:19Z pjb: Sexps are trees of cons cells and atoms, but those trees are "interpreted" by the special operators and the macros, at another level (where you may have other trees with a different structure). 2014-12-26T23:30:12Z pjb: (if c t e) as a sexp tree has the structure (if . (c . (t . (e . nil)))), which is a degenerate binary comb tree. 2014-12-26T23:30:53Z stassats quit (Ping timeout: 240 seconds) 2014-12-26T23:30:53Z pjb: It's only when we interpret it as a form, where we take the first element of the list as an operator, that we may interpret it as a tree labelled if, and three children c t e. 2014-12-26T23:31:32Z pjb: But if you take (let ((x 4)) (+ x 2)), ((x 4)) is not an operator application, so you would interpret this part of the sexp differently when integrating it into a "tree" for the let form. 2014-12-26T23:32:14Z pjb: So this is not really useful to see it like that. The evaluation model is what matter, and then the exact definition of the special operators and the macros. 2014-12-26T23:32:55Z dobby156: yaeh I get it now, thanks. I was just thinking about how it would build up a tree wrong 2014-12-26T23:33:04Z Dynasty joined #lisp 2014-12-26T23:34:10Z ameop quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2014-12-26T23:35:21Z mrSpec quit (Remote host closed the connection) 2014-12-26T23:36:29Z linux_dream joined #lisp 2014-12-26T23:37:02Z oleo joined #lisp 2014-12-26T23:38:31Z oleo quit (Read error: Connection reset by peer) 2014-12-26T23:39:13Z yenda quit (Ping timeout: 272 seconds) 2014-12-26T23:41:35Z Karl_Dscc quit (Remote host closed the connection) 2014-12-26T23:42:01Z pjb: Petit_Dejeuner: cf. 3.2.3.1.2 Constraints on Macros and Compiler Macros and 3.1.2.1.2.2 Macro Forms "An implementation is free to implement a Common Lisp special operator as a macro. An implementation is free to implement any macro operator as a special operator, but only if an equivalent definition of the macro is also provided. " 2014-12-26T23:42:30Z zacharias quit (Ping timeout: 258 seconds) 2014-12-26T23:45:24Z dobby156: pjb: sorry, me again, couldn't an if also be represented as (if. ( c . ( e . t ) ) ) I presume so long as it is interpretted correctly it doesn't really matter. 2014-12-26T23:47:25Z eudoxia joined #lisp 2014-12-26T23:47:55Z Petit_Dejeuner: pjb, It seems you're right. Thanks. 2014-12-26T23:48:52Z oleo joined #lisp 2014-12-26T23:50:08Z nikki93: Quadrescence: http://www.youtube.com/watch?v=5_NnYApOESo yup here we go 2014-12-26T23:50:48Z oleo quit (Read error: Connection reset by peer) 2014-12-26T23:51:06Z pppp2 joined #lisp 2014-12-26T23:51:15Z pppp2 quit (Read error: Connection reset by peer) 2014-12-26T23:51:44Z stassats joined #lisp 2014-12-26T23:52:46Z pppp3 joined #lisp 2014-12-26T23:53:05Z milosn quit (Read error: Connection reset by peer) 2014-12-26T23:53:14Z nikki93: Quadrescence: https://github.com/nikki93/lgame/blob/master/lgame.lisp#L231 <-- that's how simple it is to write the systems 2014-12-26T23:54:05Z milosn joined #lisp 2014-12-26T23:54:29Z pppp3 quit (Read error: Connection reset by peer) 2014-12-26T23:55:18Z zacharias joined #lisp 2014-12-26T23:57:25Z oleo joined #lisp 2014-12-26T23:59:30Z pjb: dobby156: theorically. But lisp made the choice of using NIL to terminate lists.