00:03:08 | dom96 | yes, very strange. |
00:03:27 | dom96 | I must sleep now, maybe Araq will help you out in the morning. |
00:03:32 | dom96 | Good night. |
00:03:39 | imjoe` | ok, thanks and good night |
00:05:51 | imjoe` | oh. now i'm printing out filename in system.nim and this is the only one with a relative path |
00:06:00 | imjoe` | filename: /home/joe/tmp/nn/Nimrod/lib/pure/asyncnet.nim |
00:06:00 | imjoe` | filename: lib/pure/asyncdispatch.nim |
00:06:00 | imjoe` | |
00:06:16 | imjoe` | that's got to be it. why this is i don't yet know |
00:08:18 | enderoute | I have a proc that needs “ptr TSomeProc” as a callback argument, I made a proc with the correct signature, how do you get the ptr for it? Do I have to GC_unref it? |
00:08:19 | imjoe` | hmmm yup yup :-) https://twitter.com/jacksonh/status/510529747357413376 |
00:10:52 | * | Fr4n quit (Ping timeout: 240 seconds) |
00:11:05 | imjoe` | enderoute: is this any help? http://stackoverflow.com/questions/23479655/how-can-i-use-function-pointers-in-nimrod |
00:12:29 | Jehan_ | enderoute: You get a pointer simply by providing the name of the procedure. |
00:12:52 | Jehan_ | You may have to declare the procedure as a {.procvar.} |
00:14:30 | * | clone1018_ joined #nimrod |
00:15:07 | * | endou____ joined #nimrod |
00:16:27 | enderoute | hmm ok i’ll try, it isn’t automatically grabbing the ptr, but the function also takes in like 7 arguments so i’m double checking all my argument types again |
00:17:55 | Jehan_ | It's a different type, so you may have to cast it. |
00:18:08 | Jehan_ | Where did you get the `ptr TSomeProc` from? |
00:18:38 | enderoute | Jehan_: portaudio library https://bitbucket.org/BitPuffin/nim-portaudio/src/b34b9f179734753c4ed23ad0bd28ac0b817e7d58/examples/saw_out.nim?at=default |
00:18:39 | Jehan_ | If it actually *is* a ptr to a procedure type, then you have to box it first. |
00:18:53 | enderoute | i even grabed the proc declaration from his example code and i get the same error |
00:20:50 | enderoute | hmm ok, well i found his sample code and it works for me. i’ll pick it apart bit by bit to see what I did wrong. doesn’t seem apparant to me right now. but looks like his code is automatically getting a ptr from a proc |
00:21:07 | Jehan_ | If it's the ptr TStreamCallbackTimeInfo, then this isn't a procedure pointer. |
00:21:25 | * | zling_____ quit (Ping timeout: 272 seconds) |
00:21:27 | * | clone1018 quit (Ping timeout: 272 seconds) |
00:21:28 | * | endou___ quit (Ping timeout: 272 seconds) |
00:21:28 | * | TylerE quit (Ping timeout: 272 seconds) |
00:21:32 | * | Amrykid quit (Ping timeout: 272 seconds) |
00:21:36 | * | Shoozza quit (Ping timeout: 272 seconds) |
00:21:38 | * | endou____ is now known as endou___ |
00:21:38 | * | clone1018_ is now known as clone1018 |
00:21:49 | enderoute | "ptr TStreamCallback" was my problem in OpenStream |
00:22:21 | Jehan_ | TStreamCallbackTimeInfo is an object type with three TTime fields. |
00:22:32 | * | TylerE joined #nimrod |
00:22:42 | * | Amrykid joined #nimrod |
00:22:59 | * | zling_____ joined #nimrod |
00:23:13 | * | Shoozza joined #nimrod |
00:24:04 | Jehan_ | streamCallback is a procedure that is passed to openDefaultStream, but there's no ptr there. |
00:25:15 | Jehan_ | The ptr TStreamCallback is a pointer to a data structure that is passed back to the callback procedure that you provide. |
00:25:36 | Jehan_ | And it contains the three timestamps that are probably of some relevance for the callback. |
00:33:48 | * | Jehan_ quit (Quit: Leaving) |
00:42:57 | * | francisl joined #nimrod |
00:46:44 | * | nande quit (Remote host closed the connection) |
00:55:21 | * | lyro quit (Ping timeout: 241 seconds) |
00:55:22 | * | Shoozza quit (Excess Flood) |
00:55:43 | * | Shoozza_ joined #nimrod |
00:55:43 | * | Shoozza_ is now known as Shoozza |
00:55:46 | * | Shoozza quit (Changing host) |
00:55:46 | * | Shoozza joined #nimrod |
00:57:49 | * | zling______ joined #nimrod |
00:57:59 | * | phI||Ip_ joined #nimrod |
01:01:55 | * | endou____ joined #nimrod |
01:02:03 | * | enderoute quit (Quit: enderoute) |
01:03:49 | * | vegai_ joined #nimrod |
01:05:55 | * | reactormonk quit (*.net *.split) |
01:06:50 | * | armin quit (*.net *.split) |
01:06:56 | * | lyro joined #nimrod |
01:06:58 | * | zling_____ quit (Ping timeout: 268 seconds) |
01:06:59 | * | phI||Ip quit (Ping timeout: 268 seconds) |
01:07:00 | * | Amrykid quit (Ping timeout: 268 seconds) |
01:07:01 | * | vegai quit (Ping timeout: 268 seconds) |
01:07:02 | * | endou___ quit (Ping timeout: 268 seconds) |
01:07:06 | * | Amrykid joined #nimrod |
01:07:11 | * | Trixar_za quit (Write error: Broken pipe) |
01:07:19 | * | BlameStross1 joined #nimrod |
01:07:43 | * | endou____ is now known as endou___ |
01:07:45 | * | Trixar_za joined #nimrod |
01:12:26 | * | reactormonk joined #nimrod |
01:13:17 | * | clone1018_ joined #nimrod |
01:14:29 | * | BlameStross joined #nimrod |
01:20:33 | * | Trixar_za quit (*.net *.split) |
01:20:35 | * | BlameStross1 quit (*.net *.split) |
01:20:36 | * | lyro quit (*.net *.split) |
01:20:36 | * | TylerE quit (*.net *.split) |
01:20:37 | * | clone1018 quit (*.net *.split) |
01:20:38 | * | darkf quit (*.net *.split) |
01:20:38 | * | EastByte quit (*.net *.split) |
01:21:48 | * | clone1018_ is now known as clone1018 |
01:23:04 | * | boydgreenfield quit (Quit: boydgreenfield) |
01:26:40 | * | Varriount_ joined #nimrod |
01:28:22 | * | Trixar_za joined #nimrod |
01:28:22 | * | TylerE joined #nimrod |
01:28:22 | * | lyro joined #nimrod |
01:28:22 | * | EastByte joined #nimrod |
01:29:45 | * | francisl_ joined #nimrod |
01:31:05 | * | def-- joined #nimrod |
01:32:11 | * | def- quit (Ping timeout: 276 seconds) |
01:32:14 | * | Varriount quit (Ping timeout: 276 seconds) |
01:32:16 | * | francisl quit (Ping timeout: 276 seconds) |
01:32:20 | * | francisl_ is now known as francisl |
01:32:20 | * | def-- is now known as def- |
01:35:46 | * | TieSoul quit (Read error: Connection reset by peer) |
01:50:38 | Varriount_ | So.... today I (unsuccessfully) battled bash |
01:50:47 | * | Varriount_ is now known as Varriount |
01:53:41 | EXetoC | yeah? |
01:55:13 | Varriount | EXetoC: It re-enforced my dislike of OpenBSD |
02:05:15 | * | boydgreenfield joined #nimrod |
02:07:20 | * | q66 quit (Quit: Leaving) |
02:15:28 | * | Varriount_ joined #nimrod |
02:16:15 | Onionhammer | dom96 |
02:16:20 | Onionhammer | Users/erikoleary/.babel/pkgs/jester-0.1.0/private/utils.nim(4, 16) Error: undeclared identifier: 'decodeUrl' |
02:17:36 | * | Varriount quit (Ping timeout: 252 seconds) |
02:48:43 | * | Demos joined #nimrod |
03:01:28 | * | boydgreenfield quit (Quit: boydgreenfield) |
03:04:01 | * | darkf joined #nimrod |
03:06:01 | * | Varriount__ joined #nimrod |
03:07:39 | * | boydgreenfield joined #nimrod |
03:08:34 | * | Varriount_ quit (Ping timeout: 252 seconds) |
03:15:45 | * | BlameStross left #nimrod (#nimrod) |
03:20:08 | * | cryzed quit (Ping timeout: 250 seconds) |
03:26:08 | * | boydgreenfield quit (Quit: boydgreenfield) |
03:48:27 | * | Varriount|Mobile joined #nimrod |
03:55:04 | * | Varriount joined #nimrod |
03:57:20 | * | bjz quit (Ping timeout: 252 seconds) |
03:57:42 | * | Varriount__ quit (Ping timeout: 252 seconds) |
04:08:13 | Varriount|Mobile | Hm. Has freenode been having trouble today, or is it just me? |
04:16:45 | Triplefox | it's been acting up for some of my friends |
04:18:38 | * | francisl quit (Quit: francisl) |
04:21:59 | * | Demos quit (Read error: Connection reset by peer) |
04:45:42 | * | elie2 quit (Ping timeout: 245 seconds) |
04:58:32 | * | flaviu joined #nimrod |
04:58:32 | * | armin joined #nimrod |
04:59:24 | * | flaviu is now known as Guest40590 |
04:59:39 | * | Guest40590 quit (Quit: Leaving.) |
05:03:18 | * | flaviu1 joined #nimrod |
05:03:39 | * | zling______ quit (Changing host) |
05:03:39 | * | zling______ joined #nimrod |
05:03:44 | * | endou___ quit (Changing host) |
05:03:44 | * | endou___ joined #nimrod |
05:04:04 | * | clone1018 quit (Changing host) |
05:04:04 | * | clone1018 joined #nimrod |
05:04:26 | * | TylerE quit (Changing host) |
05:04:26 | * | TylerE joined #nimrod |
05:05:30 | * | Fr4n joined #nimrod |
05:15:21 | * | flaviu1 quit (Ping timeout: 268 seconds) |
05:31:09 | * | CARAM quit (Ping timeout: 240 seconds) |
05:32:40 | * | endou___ quit (Ping timeout: 252 seconds) |
05:32:40 | * | zling______ quit (Ping timeout: 252 seconds) |
05:33:24 | * | TylerE quit (Ping timeout: 272 seconds) |
05:33:48 | * | clone1018 quit (Ping timeout: 272 seconds) |
06:20:28 | * | fowl joined #nimrod |
06:23:22 | * | BlaXpirit joined #nimrod |
06:25:00 | * | TieSoul joined #nimrod |
06:46:06 | * | elie2 joined #nimrod |
06:49:11 | * | tdc joined #nimrod |
07:05:21 | * | tdc_ joined #nimrod |
07:08:32 | * | tdc quit (Ping timeout: 245 seconds) |
07:09:30 | * | bjz joined #nimrod |
07:10:34 | * | tdc_ is now known as tdc |
07:14:22 | * | fowl quit (Ping timeout: 268 seconds) |
07:18:15 | * | fowl joined #nimrod |
07:20:39 | * | zling______ joined #nimrod |
07:25:22 | * | clone1018_ joined #nimrod |
07:26:42 | * | CARAM joined #nimrod |
07:27:04 | * | endou____ joined #nimrod |
07:29:15 | * | TylerE joined #nimrod |
07:34:52 | * | bjz quit (Read error: Connection reset by peer) |
07:35:35 | * | bjz joined #nimrod |
07:40:23 | * | bjz_ joined #nimrod |
07:42:42 | * | bjz quit (Ping timeout: 245 seconds) |
07:45:45 | * | fowl quit (Ping timeout: 272 seconds) |
07:51:12 | * | Matthias247 joined #nimrod |
08:09:05 | * | armin is now known as reloc0 |
08:15:50 | * | reactormonk quit (*.net *.split) |
08:16:13 | * | reactormonk joined #nimrod |
08:19:57 | * | EastByte quit (Ping timeout: 272 seconds) |
08:21:03 | * | Varriount_ joined #nimrod |
08:21:45 | * | Matthias247_ joined #nimrod |
08:24:11 | * | Varriount quit (Ping timeout: 252 seconds) |
08:24:47 | * | Matthias247 quit (Ping timeout: 252 seconds) |
08:25:31 | * | phI||Ip_ quit (Ping timeout: 252 seconds) |
08:26:47 | * | reactormonk quit (Ping timeout: 252 seconds) |
08:29:08 | * | phI||Ip joined #nimrod |
08:29:42 | * | reactormonk joined #nimrod |
08:30:30 | * | kunev joined #nimrod |
08:38:03 | * | EastByte_ joined #nimrod |
08:38:51 | * | EastByte_ quit (Client Quit) |
08:39:00 | * | EastByte joined #nimrod |
08:51:53 | * | Matthias247_ quit (Read error: Connection reset by peer) |
09:09:47 | * | kunev quit (Ping timeout: 245 seconds) |
09:17:12 | * | Araq_bnc is now known as Araq |
09:18:33 | Araq | imjoe`: don't use -d:nimfix for the compiler |
09:18:50 | Araq | dom96: don't tell people to use -d:nimfix |
09:24:02 | * | comex_ quit (Ping timeout: 252 seconds) |
09:24:18 | * | comex_ joined #nimrod |
09:26:42 | * | kunev joined #nimrod |
09:32:27 | * | kunev quit (Ping timeout: 246 seconds) |
10:01:59 | * | kuzy000_ joined #nimrod |
10:03:07 | * | tdc quit (Ping timeout: 245 seconds) |
10:06:13 | * | kuzy000_ quit (Read error: Connection reset by peer) |
10:08:28 | * | kunev joined #nimrod |
10:17:07 | * | kunev_ joined #nimrod |
10:17:07 | * | kunev quit (Ping timeout: 272 seconds) |
10:28:16 | * | kunev_ quit (Ping timeout: 250 seconds) |
10:40:06 | * | BlaXpirit quit (Quit: Quit Konversation) |
10:42:01 | * | kunev joined #nimrod |
10:52:11 | * | zling______ quit (Ping timeout: 276 seconds) |
10:53:35 | * | Varriount|Mobile quit (Remote host closed the connection) |
10:53:49 | * | Varriount|Mobile joined #nimrod |
10:59:18 | * | zling______ joined #nimrod |
11:07:48 | * | BlaXpirit joined #nimrod |
11:27:38 | * | kunev quit (Ping timeout: 250 seconds) |
11:29:35 | * | vegai_ quit (Ping timeout: 252 seconds) |
11:29:36 | * | vegai joined #nimrod |
11:29:37 | * | kunev joined #nimrod |
11:29:38 | * | vegai quit (Changing host) |
11:29:38 | * | vegai joined #nimrod |
11:36:32 | * | untitaker_ quit (Ping timeout: 245 seconds) |
11:43:12 | * | untitaker joined #nimrod |
11:46:51 | * | noam_ quit (Read error: Connection reset by peer) |
11:47:24 | * | noam joined #nimrod |
11:48:56 | * | kuzy000 joined #nimrod |
11:51:24 | * | tdc joined #nimrod |
11:52:18 | dom96 | Araq: it looked like it may fix imjoe`'s problems. It was a temporary fix anyway. Any ideas what his problems are caused by? |
11:54:10 | dom96 | Onionhammer: pull latest nim from bigbreak |
12:26:03 | * | tdc quit (Ping timeout: 246 seconds) |
12:35:09 | * | q66 joined #nimrod |
12:37:44 | * | kunev quit (Quit: leaving) |
12:38:41 | * | tdc joined #nimrod |
12:45:53 | * | Varriount|Mobile quit (Read error: Connection reset by peer) |
12:45:59 | * | Varriount-Mobile joined #nimrod |
12:54:11 | * | untitaker quit (Ping timeout: 272 seconds) |
13:00:15 | * | untitaker joined #nimrod |
13:00:41 | Araq | dom96: he's using some old config which doesn't contain --cs:partial |
13:12:55 | * | zahary joined #nimrod |
13:19:44 | Araq | bbl |
13:47:51 | * | darkf quit (Quit: Leaving) |
13:55:24 | * | mal`` quit (*.net *.split) |
13:55:45 | * | TylerE quit (*.net *.split) |
13:55:45 | * | CARAM quit (*.net *.split) |
13:55:45 | * | clone1018_ quit (*.net *.split) |
13:55:46 | * | elie2 quit (*.net *.split) |
13:55:48 | * | def- quit (*.net *.split) |
13:55:51 | * | Amrykid quit (*.net *.split) |
13:55:52 | * | Amrykid joined #nimrod |
13:55:59 | * | def- joined #nimrod |
13:56:02 | * | BlameStross joined #nimrod |
13:56:03 | * | elie2 joined #nimrod |
13:56:32 | * | clone1018_ joined #nimrod |
13:56:56 | * | CARAM joined #nimrod |
13:57:20 | * | TylerE joined #nimrod |
14:06:20 | * | willwillson joined #nimrod |
14:08:17 | * | Ven joined #nimrod |
14:16:53 | * | tillzy joined #nimrod |
14:18:13 | * | tdc quit (Ping timeout: 260 seconds) |
14:21:23 | willwillson | on bigbreak: shouldn't compiler/nim.ini be changed to copy nim.cfg, not nimrod.cfg. I think thats why people have problems with their config not specifiying cs:partial ;-) |
14:23:07 | * | Varriount-Mobile quit (Ping timeout: 245 seconds) |
14:24:12 | * | Varriount-Mobile joined #nimrod |
14:26:02 | * | bjz_ quit (*.net *.split) |
14:26:33 | * | bjz joined #nimrod |
14:30:11 | dom96 | willwillson: you mean the file extension is different? |
14:30:26 | dom96 | when did this get added to the stdlib? https://github.com/Araq/Nimrod/blob/devel/lib/pure/basic2d.nim |
14:30:37 | * | Varriount-Mobile quit (Read error: No route to host) |
14:30:54 | * | Varriount-Mobile joined #nimrod |
14:31:01 | willwillson | dom96: nah, at present kock installs nimrod.cfg and not a nim.cfg. Nim looks for nim.cfg |
14:31:13 | willwillson | so its koch |
14:31:33 | dom96 | oh I see what you mean. |
14:31:33 | * | tdc joined #nimrod |
14:31:37 | dom96 | Yes, it should be changed. |
14:31:57 | * | Varriount-Mobile is now known as Varriount|Mobile |
14:32:04 | dom96 | We don't use koch install so it's not all that well tested. |
14:32:14 | willwillson | I see |
14:33:14 | willwillson | that might have been the problem imjoe was having? |
14:33:27 | dom96 | yes |
14:35:09 | Varriount|Mobile | Darn. freenode might've been compromised |
14:35:29 | dom96 | Varriount|Mobile: oh? |
14:36:01 | Varriount|Mobile | dom96: Didn't you just see the global message sent out? |
14:36:25 | EXetoC | dom96: it was added several months ago I think |
14:36:38 | dom96 | Varriount|Mobile: nope, I guess hexchat sent it some stupid place as always |
14:37:36 | dom96 | -tomaw- [Global Notice] Earlier today the freenode infra team noticed an anomaly on a single IRC server. We have identified that this was indicative of the server being compromised by an unknown third party. We immediately started an investigation to map the extent of the problem and located similar issues with several other machines and have taken those offline. For now, we |
14:37:43 | dom96 | recommend that every change their NickServ password as a precaution. |
14:37:48 | dom96 | found somebody's copy paste |
14:37:53 | dom96 | There it is for others ^ |
14:41:57 | dom96 | well I suggest you guys hold off on changing the password |
14:43:31 | willwillson | why's that? |
14:44:38 | dom96 | because servers could still be compromised |
14:44:51 | dom96 | so you would giving away your new password in plain text |
14:45:17 | dom96 | *would be |
14:45:38 | willwillson | good point |
14:50:00 | * | francisl joined #nimrod |
14:50:47 | * | Jehan_ joined #nimrod |
14:55:38 | * | tdc quit (Ping timeout: 250 seconds) |
15:11:52 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:29:11 | * | uber_ is now known as uber |
15:39:23 | Varriount_ | dom96: What version of hexchat are you using? |
15:39:28 | * | Varriount_ is now known as Varriount |
15:39:35 | dom96 | 2.10 |
15:39:49 | dom96 | Varriount: how are those scripts coming along? |
15:40:04 | * | Ven joined #nimrod |
15:40:23 | Varriount | dom96: Because I use Hexchat, and the global notices appear in whatever the active window was when they were sent. |
15:41:12 | dom96 | maybe my BNC did something silly |
15:45:22 | NimBot | Araq/Nimrod bigbreak 69d4eb1 Dominik Picheta [+0 ±3 -0]: Some docgen fixes. |
15:45:22 | NimBot | Araq/Nimrod bigbreak d28088f Dominik Picheta [+0 ±1 -0]: Fix 'doc' command. |
15:45:22 | NimBot | Araq/Nimrod bigbreak 0047172 Dominik Picheta [+0 ±8 -1]: More docgen fixes. |
15:45:40 | dom96 | Araq: So running doc2 on httpclient causes an OutOfMem error |
15:46:06 | dom96 | Even though there is plenty of memory |
15:46:20 | EXetoC | more ram :> |
15:47:32 | dom96 | Araq: I think it's something recent because it worked yesterday |
15:47:54 | Araq | dom96: well I didn't push anything, did I? |
15:48:32 | dom96 | I think I pulled though |
15:48:36 | Varriount | dom96: I have the script half done. Remind me again why a batch/bash script is needed for such a small process? |
15:49:14 | Varriount | I mean, the process in the csources repo is only 7 lines long. |
15:49:16 | dom96 | Varriount: For the same reason why an installer is needed on Windows: convenience. |
15:49:45 | dom96 | Despite the process being only 7 lines long people still get it wrong. |
15:49:53 | Varriount | dom96: Will the script reside *in* the Nimrod repository, or outside it? |
15:49:57 | dom96 | The script can explain each branch to them. |
15:49:59 | dom96 | outside it |
15:50:06 | dom96 | put it in its own repo |
15:50:22 | EXetoC | Varriount: you think it's a poor DSL? the shell languages seem awkward, but I'm not proficient in any of them yet |
15:50:42 | Varriount | EXetoC: Yes. Yes I do. |
15:50:47 | EXetoC | modern general purpose languages can do better I'm sure |
15:50:52 | dom96 | Araq: any ideas why that error may occur? |
15:51:06 | EXetoC | nimrod maybe :> with some hacking |
15:51:29 | EXetoC | and more vm features |
15:52:05 | Araq | dom96: well I merged devel into bigbreak |
15:52:17 | Araq | and when I push this maybe it disappears again |
15:52:30 | Varriount | EXetoC: I spent 6 hours yesterday trying to make a script which, when the target directory had more than X files, would delete the Y oldest files until there were less than X files again. |
15:52:31 | Araq | but yeah, we need some earlier check |
15:52:41 | dom96 | Araq: try running koch web yourself |
15:53:45 | dom96 | Varriount: Rust has a script too, have you seen the Rust guide? http://doc.rust-lang.org/guide.html |
15:54:54 | Varriount | dom96: So, aside from bootstrapping Nimrod, you also want it to update Nimrod as well. |
15:55:22 | dom96 | Varriount: no. |
15:55:36 | dom96 | Varriount: Keep it simple for now. |
15:55:48 | dom96 | I want it interactive though. |
15:56:15 | dom96 | Although you could allow the user to specify flags too I suppose. |
15:56:46 | Araq | Varriount: ugh, please don't waste your time with shell scripting |
15:56:52 | Varriount | dom96: Better idea, just have the bootstrap script compile koch with the update flag. |
15:57:17 | Araq | dom96: what should this script do? |
15:57:55 | Varriount | EXetoC: Some things were because of OpenBSD's lack of non-standard features with their basic tools, like the fact that stat can't output null character delimited lists of files, or that you can't tell find to format its output. |
15:57:55 | dom96 | Araq: It should ask you where you want Nim to be installed to. |
15:58:02 | dom96 | And it should then clone Nim there |
15:58:05 | dom96 | and bootstrap it. |
15:58:15 | dom96 | And give you instructions on how to add it to your PATH |
15:58:24 | dom96 | oh, and it should ask you which branch you want |
15:58:31 | Araq | Varriount there is some lang to sh|bat compiler |
15:58:43 | Araq | was on reddit recently |
16:00:55 | Araq | Varriount: does your tester test every babel package? |
16:03:10 | dom96 | Please read https://github.com/Araq/Nimrod/blob/bigbreak/lib/pure/asyncdispatch.nim#L23 and let me know what you think. |
16:03:43 | * | gelumelu joined #nimrod |
16:03:52 | Araq | s/keyword/pseudo keyword/ |
16:04:45 | * | bogen joined #nimrod |
16:05:19 | Araq | also |
16:05:40 | Araq | please use .. include:: asyncdocs.txt or something similar |
16:05:59 | Araq | no wonder you want multi line comments :P |
16:06:13 | Varriount | Araq: My tester specifically, or the general tester program? |
16:06:16 | Araq | this is not supposed to be used for book chapters |
16:06:23 | Araq | Varriount Both |
16:06:27 | EXetoC | cus bad editor? :p |
16:07:00 | dom96 | Araq: Yeah, I still want multiline comments. |
16:07:08 | dom96 | Araq: Include is a silly workaround. |
16:07:20 | Araq | not using include is silly in this case |
16:07:21 | dom96 | What if I don't want my docs separated from my module? |
16:07:35 | Araq | you really should want that :P |
16:07:39 | Araq | but if not |
16:07:46 | Araq | do it as you did here |
16:08:27 | * | gelumicu joined #nimrod |
16:09:27 | dom96 | it's not a great thing to do for babel packages |
16:09:33 | Araq | "When a procedure is "awaited", the asynchronous procedure it is awaited in will suspend its execution" |
16:09:38 | Varriount | Araq: Uh... Did the tester source code get mangled or something? |
16:09:40 | Araq | <-- some typo in there |
16:09:53 | dom96 | ? |
16:10:22 | Araq | Varriount there were no big changes to the tester |
16:10:33 | dom96 | where do you see a typo? |
16:10:57 | Varriount | Araq: Hm. Ok.. |
16:12:05 | * | gelumelu quit (Ping timeout: 260 seconds) |
16:12:22 | Araq | dom96: hrm ok but " it is awaited in" sounds weird |
16:12:31 | dom96 | whilst writing all these doc comments I didn't even think "hrm, it would be nice to use multi-line comments here" |
16:12:50 | dom96 | Now that you put that idea into my head I won't let it go :P |
16:13:01 | dom96 | So yeah, multi-line comments please. |
16:13:28 | dom96 | Care to suggest an alternative way of saying what I mean? |
16:13:43 | Varriount | Araq: According to the tester source code, babel packages belonging to the github user 'nimrod-code' are tested by default, *if* babel is available. |
16:13:47 | Araq | discard """ """ ? |
16:14:42 | Araq | Varriount ok |
16:15:37 | Varriount | Araq: And my instance of the tester does appear to be testing the packages. |
16:15:51 | Araq | all of them? |
16:16:02 | Varriount | Araq: Let me check. |
16:16:47 | Varriount | Araq: Also, note that the packages are just tested to be downloadable and installable by babel. Since no standard 'build' or 'test' commands are available, not much else can be done. |
16:19:53 | Varriount | Araq: All of nimrod-code's babel packages are tested. |
16:20:09 | dom96 | I'm sorry but making the tester test babel packages is the wrong way to do this. NimBuild should have a step for testing babel packages. |
16:22:39 | Araq | Varriount: I'm pretty sure we can compile arbitrary babel packages ... somehow |
16:24:54 | EXetoC | test command for babel? |
16:26:47 | dom96 | Araq: Just criticism then? |
16:27:01 | dom96 | No other feedback? |
16:27:08 | Araq | dom96: it's fine |
16:27:46 | Varriount | dom96: By the way, it might be good idea to distinguish by architecture the directories babel stores package binaries in |
16:29:27 | dom96 | nah. Which one would be the 'active' arch then? |
16:29:33 | EXetoC | do you just run every module in the source directory? I do indeed prefer to have the tests be separate |
16:29:43 | Varriount | EXetoC: Huh? |
16:30:13 | EXetoC | Varriount: when testing the packages |
16:30:25 | EXetoC | you just execute 'build'? |
16:30:56 | Varriount | EXetoC: The tester grabs a list of packages from github. By default, it goes through the list of packages whose user is 'nimrod-code', and 'babel install $packageName' |
16:31:00 | dom96 | If the babel package is a binary then you can just install it |
16:31:01 | Varriount | them |
16:31:12 | dom96 | if it's a library then you can compile all the .nim files that have been installed |
16:31:57 | dom96 | Araq: Just 'fine'? :( |
16:31:57 | EXetoC | I was thinking about actual tests, but that's less important, and you'd need to run mongo for example |
16:32:16 | Varriount | EXetoC: There's no standard way to do that through babel |
16:32:18 | dom96 | EXetoC: That is what 'babel test' will run at some point. |
16:32:22 | EXetoC | but that could be customized fairly easily |
16:33:00 | Varriount | dom96: I can't just compile every *.nim file from a downloaded package an expect it to compile successfully. |
16:33:29 | dom96 | Varriount: yes you can |
16:34:15 | Varriount | dom96: So, by extension, I could compile every *.nim file in compiler directory of the Nim repo, and expect nothing but success? |
16:34:28 | Varriount | What about files that are included by other files? |
16:34:38 | EXetoC | and only a few libs require some kind of daemon to be running |
16:35:26 | Araq | Varriount is right dom96, this breaks for include files |
16:36:30 | Varriount | Not to mention the fact that not all babel packages are meant to be run/installed/compiled on Windows (X11 anyone?) |
16:36:50 | dom96 | Yes, it won't be 100% reliable. |
16:36:52 | dom96 | but it's something. |
16:37:08 | Araq | we can easily come up with smarter heuristics |
16:37:17 | dom96 | Also, include files are likely to be in 'private' dirs |
16:37:22 | dom96 | so you simply don't compile them. |
16:37:37 | Araq | but every babel package should have a foo.nim.cfg file to tell people what is the main file |
16:37:44 | Araq | IMO |
16:37:50 | Araq | bbl |
16:39:14 | Varriount | packages need more metadata |
16:39:51 | dom96 | bbl |
16:42:59 | EXetoC | Araq: not in the package file? |
16:44:07 | Varriount | Araq: I don't mind writing the batch/bash files - I need to get some practice in anyway. Even though I dislike both the shell languages, I'm still gonna have to use them. |
16:47:20 | Jehan_ | Does anyone actually like any shell programming language? :) |
16:51:33 | Varriount|Mobile | Jehan_: Does Python count? |
16:52:00 | Jehan_ | Varriount|Mobile: No, that's the escape hatch that sane people use, but it's not a shell programming language. |
16:52:44 | EXetoC | there are nice python libs for that |
16:54:36 | * | kuzy000 quit (Read error: Connection reset by peer) |
16:54:58 | bogen | heh, yeah, I don't like shell languages, but I write a lot of shell scripts. For many I use python instead, but I don't like python, I only use it before for complex "shell" scripts, it is better than bash and the like. But just because it is much better, does not mean I like it (python) |
16:55:13 | Jehan_ | EXetoC: The underlying problem is that you need something very basic for installation/configuration purposes that runs "everywhere". Once you can do that, you can leverage a higher level approach. |
16:55:21 | bogen | s/before for/for |
16:55:53 | Jehan_ | There are three problems with Python there: |
16:56:00 | Jehan_ | (1) It's not installed everywhere. |
16:56:53 | Jehan_ | (2) Where it's installed, it may be missing certain key packages (especially on some Linux installations with their ridiculous way of breaking everything down into microscopic components). |
16:57:39 | Jehan_ | (3) The Python 2/3 split creates the problem that the "python" executable may not be the one you want, and "python2" as a substitute does not work everywhere, either. |
16:58:29 | Jehan_ | Python is perfectly fine for doing this stuff on systems where you control the setup, but then the same holds for pretty much any programming language. |
16:59:23 | Jehan_ | It's still better than most alternatives for a lot of situations, since installing Python is usually straightforward (since it's been tested on pretty much any architecture under the sun). |
16:59:37 | EXetoC | not that we were talking about actual system scripts, but yeah |
17:00:26 | Jehan_ | EXetoC: For scripting an existing system, it's a perfectly fine choice. So are plenty of other languages, though. |
17:01:24 | Varriount|Mobile | bogen: what do you prefer? |
17:01:43 | Jehan_ | My favourite build system is still SCons, so I'm still using Python a lot. |
17:05:36 | bogen | Varriount|Mobile: I use bash for stuff that does not need to scale |
17:06:17 | bogen | for things that need to scale I use python, but I hope to soon be using Nim instead of python as my goto language for a "step up" from bash |
17:06:22 | Varriount|Mobile | bogen: Do you work with OpenBSD at all? |
17:06:56 | bogen | Varriount|Mobile: I have in the past, not recently. on the BSDs I normally use bash as my shell |
17:07:47 | bogen | I've not worked with OpenBSD regularily in over 12 years |
17:08:22 | Varriount|Mobile | bogen: I'm stuck with using sh |
17:08:48 | Varriount|Mobile | On an OpenBSD system. |
17:09:29 | Jehan_ | Varriount|Mobile: No alternatives? |
17:10:27 | Varriount|Mobile | Jehan_: Not really. |
17:10:39 | bogen | I think tcsh or some other csh might be installed, but if you are use to bash then csh is odd |
17:11:14 | Jehan_ | Varriount|Mobile: Hmm, you can't even install one of your own? Or aren't you allowed to do that? |
17:23:11 | dom96 | back |
17:24:39 | bogen | I used base 36 sometimes in generated Forth source |
17:25:11 | Varriount|Mobile | bogen: For what? |
17:25:21 | bogen | eh, wrong window... |
17:26:52 | bogen | Varriount|Mobile: but to answer your question, to have shorter (in source text) intialized data |
17:27:03 | bogen | (shorter than hex encoding) |
17:27:48 | bogen | some array or some structure = some data |
17:28:20 | bogen | where some data was generated from somewhere else |
17:28:20 | Varriount|Mobile | dom96: What do other package managers (such as npm) do with respect to package testing? Perhaps the nimrod-code packages should just have their own convention for testing and building. |
17:29:07 | dom96 | I think they just have a tests dir and just compile and run whatever is in there. |
17:29:31 | dom96 | And yes, they likely have some sort of convention for the files inside that dir. |
17:30:33 | Varriount|Mobile | dom96: Well, we should probably look into how other package managers do things, and do what they do (in a better fashion) |
17:31:23 | dom96 | Varriount|Mobile: yes |
17:32:42 | * | mal`` joined #nimrod |
17:35:50 | * | uber quit (Read error: Connection reset by peer) |
17:37:09 | * | fowl joined #nimrod |
17:50:21 | * | kuzy000_ joined #nimrod |
17:59:51 | * | Varriount-Mobile joined #nimrod |
18:00:21 | * | Varriount|Mobile quit (Read error: No route to host) |
18:04:34 | * | Varriount-Mobile quit (Ping timeout: 250 seconds) |
18:10:37 | * | fowl quit (Ping timeout: 245 seconds) |
18:12:05 | * | bogen quit (Quit: Leaving.) |
18:16:57 | * | bogen joined #nimrod |
18:24:59 | * | pafmaf joined #nimrod |
18:26:11 | * | pafmaf quit (Client Quit) |
18:27:00 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:31:07 | * | uber joined #nimrod |
18:32:51 | * | fowl joined #nimrod |
18:42:09 | Araq | dom96: doc2 httpserver works for me |
18:42:27 | Araq | but it generates 'uses: []' all over the place |
18:43:33 | Araq | oh wait |
18:43:40 | Araq | yeah httpclient fails with OOM |
18:48:44 | * | Ven joined #nimrod |
18:49:05 | dom96 | yes |
18:55:47 | Araq | hem very strange |
18:56:02 | Araq | it says OutOfMemError |
18:56:14 | Araq | but it should output "out of memory" |
19:09:18 | * | bjz quit (Max SendQ exceeded) |
19:10:26 | * | bjz joined #nimrod |
19:27:26 | * | JasonJAyalaP joined #nimrod |
19:27:46 | dom96 | hello JasonJAyalaP |
19:28:21 | JasonJAyalaP | dom96: Heyo |
19:30:43 | * | Varriount-Mobile joined #nimrod |
19:47:08 | JasonJAyalaP | Anyone talking about making a push to have documentation/tutorials/guides/etc ready before 1.0? |
19:47:55 | Araq | JasonJAyalaP: filwit is updating the documentation builder |
19:48:01 | Araq | and created a new design etc. |
19:48:23 | dom96 | JasonJAyalaP: What would you like to see apart from what we already have? Have you seen our current tutorial? |
19:48:45 | JasonJAyalaP | I have some (volunteer!) experience with technical writing, and am willing to help... |
19:48:58 | Araq | awesome |
19:49:00 | JasonJAyalaP | dom96: Well, tut 2 says "incomplete, look at manual" |
19:49:43 | JasonJAyalaP | and tut1 has partially the feel of a technical overview "Types, Collection Types, Functions", and partially the feel of tutorial/learn-by-example |
19:49:54 | dom96 | I personally feel that the tutorial should be rewritten completely. |
19:50:25 | dom96 | Something like Rust's guide would be nice. If you are willing to write something like that then please do! |
19:50:36 | demilichsd | The new Rust guide? |
19:50:44 | demilichsd | That one is actually quite mediocre and disjointed. |
19:51:06 | JasonJAyalaP | The rust guide is dealing with that same issue too... How much "learn step by step with examples"; how much "technical overview" |
19:51:17 | dom96 | demilichsd: how so? |
19:51:52 | demilichsd | what JasonJAyalaP essentially said, it has no direction |
19:52:00 | Araq | JasonJAyalaP: well the tutorial suffers from 2 authors |
19:52:08 | Araq | I wrote it initially |
19:52:19 | Araq | and then gradha added LOTS of additional information |
19:52:41 | JasonJAyalaP | Araq: Right. We need to settle philosophy/guidelines first. What purpose everything serves |
19:53:07 | dom96 | demilichsd: I see. I only skimmed it and it looked good on first sight but perhaps you're right. |
19:54:17 | JasonJAyalaP | For example, we could have, in order of terseness to newbie hand-holding: the Index -> The Manual -> Nimrod-By-Example -> The Guide -> The Nimrod Newbie |
19:54:27 | dom96 | Maybe it would be better to split up everything as much as possible. That way people can read only what they are interested in. |
19:55:05 | Triplefox | Docs have better impact if they can be geared towards one domain... Like, even if it's not the domain problem you ultimately want to work on it provides a complete context |
19:56:38 | JasonJAyalaP | dom96: Right. We have to answer "who's our audience and how are they trying to learn?" for anything we put out |
20:01:18 | dom96 | JasonJAyalaP: I think only a small proportion of audience are new to programming. So it may make sense to focus on a guide for people who have experience in at least one programming language. |
20:01:26 | dom96 | *of our audience |
20:11:56 | Araq | JasonJAyalaP: I agree with dom96. The tutorial should have many references to other languages. but if people do not know the other language, it shouldn't hurt. |
20:12:29 | Araq | Or maybe we should have things like "skip this section if you already knew C's address of operator" |
20:12:37 | Araq | *know |
20:14:48 | dom96 | I don't know. I don't think people would feel comfortable skipping sections. |
20:14:58 | * | shodan45 joined #nimrod |
20:15:03 | Araq | but if we tell them? |
20:17:56 | dom96 | What advantages does this bring versus keeping things separated? |
20:18:23 | Araq | dom96: separation can be annoying |
20:18:36 | Araq | we already have a "docs" list that nobody reads |
20:18:50 | Araq | tutorial vs manual vs internal docs vs index etc. |
20:19:09 | Araq | people often miss the index, for instance |
20:20:29 | dom96 | I don't think they will miss this. |
20:26:09 | Varriount-Mobile | JasonJAyalaP: Improvements to the (content/organization) of tutorials/guides would be really handy |
20:26:20 | JasonJAyalaP | It's possible to write to both an intermediate programmer and an advanced-beginner... You can both make a comparison to other languages for the quick "aha", as well as fully explain the details |
20:26:51 | Varriount-Mobile | The language manual is all right, but it really just gives an overview of mechanics, not necessarily proper use. |
20:26:56 | JasonJAyalaP | Varriount-Mobile: I agree. It's big marketing issue too. The docs are the first thing people see, and make the difference between giving up and writing a blog post about it |
20:27:26 | Varriount-Mobile | JasonJAyalaP: An unfortunate truth. |
20:27:29 | JasonJAyalaP | *the difference between giving up *or trying it out and writing about it |
20:29:12 | dom96 | JasonJAyalaP: If you can make it work then write to both knowledge levels. But doesn't that risk confusing the target audience in the guide? |
20:29:36 | JasonJAyalaP | One way to go about this -> Is there a language/website/documentation that does this well? We can imitate and adjust |
20:30:54 | Triplefox | One resource i really liked for python was the recipe book |
20:30:57 | JasonJAyalaP | dom96: Always a risk, but experience programmers read "this is halfway between enums and ADTs" and they instantly get it. Newer programmers won't, that's not necessary because you continue on and explain fully |
20:31:24 | JasonJAyalaP | *won't, but that's not |
20:32:32 | JasonJAyalaP | dom96: That saves us from having to separate the guides too much (one for complete newbies, one for beginners, one for people who know C, one for neck beards) |
20:32:33 | dom96 | JasonJAyalaP: How much experience do you have with Nimrod? Think you could start writing a guide for us soon? Maybe we could get it in for this release. |
20:33:24 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:35:23 | JasonJAyalaP | dom96: Hmm. I'm less than ideal for the actual examples, but I'll have a lot to say about the structure of the document and the wording of the explanations. |
20:35:42 | * | Demos joined #nimrod |
20:36:17 | JasonJAyalaP | dom96: I don't know how much it can be rushed, but in any case, the first step is deciding what to write (generally speaking) |
20:36:37 | * | Ven joined #nimrod |
20:36:59 | * | gelumicu quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) |
20:37:01 | JasonJAyalaP | We seem to agree that the tuts need to be replaced. But with what? It can be multiple things, but lets pick one thing to start with |
20:38:06 | dom96 | You could steal some examples from here: https://nimrod-by-example.github.io/ |
20:38:15 | dom96 | For others you can ask us of course. |
20:38:18 | JasonJAyalaP | One idea is -> Put effort into the Nimrod-by-example project. This is an easy way to start showing examples and explainations, without too much worry about structure. And the audience is defined (the "just show me some examples" people) |
20:39:30 | JasonJAyalaP | one that the by-example is really filled-out and meaty, we can take those examples and structure them into a more friendly format with a bit more hand holding |
20:39:36 | JasonJAyalaP | *once that |
20:42:29 | JasonJAyalaP | perhaps... from terseness to friendly, from "low level" to high: The Manual -> By-Example -> Guide |
20:45:09 | JasonJAyalaP | Another angle of attack: Write a learnxinyminutes.com for Nimrod. Essentially By-Example by bare necessities. This will quickly reveal what's essential. |
20:45:18 | JasonJAyalaP | *but bare necessities |
20:51:02 | Jehan_ | It's interesting how many of the learn-x-in-y-minutes example don't actually get the idea. |
20:51:17 | Jehan_ | Esp. compared to the Lua original. |
20:51:42 | Jehan_ | Some are trying to show off what they're think is cool stuff about their language too early. |
20:51:56 | Jehan_ | And the C++ version is just … weird. |
20:52:25 | Jehan_ | That one's more about explaining gotchas (and even explaining them so that a newcomer won't understand them). |
20:52:33 | Triplefox | For lua it makes sense because it's already in a minimal structure |
20:53:30 | Jehan_ | Triplefox: Yeah, but even so you want to start with basic principles and then build upon them in a logical fashion. |
20:53:56 | Jehan_ | Not mix in examples that are going to throw somebody for a loop. |
20:54:43 | JasonJAyalaP | Jehan_: I'm studying the different examples now. What do you think is most important? Which are good examples? |
20:55:13 | Jehan_ | JasonJAyalaP: I think the Lua example is still one of the best, because it doesn't overwhelm you. |
20:55:20 | Triplefox | Mostly what I'm thinking of is when a language has essential boilerplate...e.g. java |
20:55:44 | Triplefox | It adds weight to every example |
20:55:48 | EXetoC | essential sure |
20:56:24 | * | tdc joined #nimrod |
20:56:47 | Triplefox | Nim fares well on that though, i think |
20:56:48 | Jehan_ | Triplefox: That can be worked around, but Java boilerplate has always been a problem for teaching the language. |
20:57:25 | Jehan_ | But there are also other places where the writing trips up and it's just not obvious to experienced programmers. |
20:57:41 | Jehan_ | For example, the Ruby version starts out with: |
20:57:49 | Jehan_ | # Numbers are objects |
20:57:49 | Jehan_ | 3.class #=> Fixnum |
20:57:49 | Jehan_ | 3.to_s #=> "3" |
20:58:45 | Jehan_ | Newbie reaction: "Numbers are objects? What does that mean? What does it mean that a floating point number is followed by an identifier? What is Fixnum?" |
20:59:12 | JasonJAyalaP | Jehan_: I see that often in the form of ambiguous wording which could be interpreted in a ridiculous (once you already know) way, but isn't obviously ridiculous to the new user |
20:59:27 | Jehan_ | JasonJAyalaP: Yup. |
20:59:52 | Jehan_ | Another example from the Ruby version: |
20:59:55 | Jehan_ | =begin |
20:59:55 | Jehan_ | This is a multiline comment |
20:59:55 | Jehan_ | No-one uses them |
20:59:55 | Jehan_ | You shouldn't either |
20:59:55 | Jehan_ | =end |
21:00:03 | JasonJAyalaP | ha |
21:00:13 | JasonJAyalaP | Then why waste time/head-space talking about it? |
21:00:15 | Jehan_ | If nobody uses multiline comments and newbies aren't going to stumble upon them by accident, just leave them out. |
21:00:18 | Jehan_ | Yeah. |
21:00:26 | tillzy | one thing that throw me a bit of when reading the tutorial (started learning this week) was the different integers, floats and things like that.. when you feel that you have to remember alot of things. |
21:01:15 | tillzy | maby sticking to the essentials as previously mentioned and only link to the more advance features of the same nature |
21:01:33 | JasonJAyalaP | tillzy: Often, guides will start with a long list of all the types, then a long list of all the data structures... |
21:01:45 | Triplefox | Something that's been on my mind, more of a general language design thing... is that what is probably most pressing for any language is its strengths relative to assembly... since that's ultimately the building block |
21:01:45 | Jehan_ | tillzy: Yeah. The idea is to give them the basics so that (1) they can get started and (2) have a foundation to explore the rest of the language on their own. |
21:02:11 | JasonJAyalaP | Triplefox: You mean, "why not just use assembly"? |
21:02:32 | Triplefox | Or, why have a complex syntax |
21:02:35 | Jehan_ | Triplefox: For almost any language that should be that you (1) get better abstraction tools and (2) aren't tied to one specific processor. |
21:03:02 | Jehan_ | It's not really hard to make the case against assembly language. |
21:03:18 | JasonJAyalaP | Jehan_, tillzy: Right. People checking out the language usually want to start playing with it and "get a feel". They're not language enthusiasts wanting a spec. |
21:04:14 | Triplefox | That's an easy argument, but why these forms and constructs |
21:04:19 | Jehan_ | JasonJAyalaP: yeah, exactly. |
21:04:24 | Triplefox | What makes them special |
21:04:55 | Jehan_ | Triplefox: Honestly, that's nothing that newbies care about. They're more interested in "how do I get this thing to do X" for some X they're curious about. |
21:05:08 | JasonJAyalaP | Triplefox: When I can't remember a certain syntax ("Was it `do: -> case (x:x)` or `-> |x| when x not y` ?") I often say to myself "damn, this would have been more memorable in Lisp! |
21:05:12 | * | Varriount-Mobile quit (Read error: Connection reset by peer) |
21:05:47 | Jehan_ | Language comparisons are mostly just flamewar fodder for Reddit. |
21:05:59 | JasonJAyalaP | Jehan_: I think Triplefox is just thinking out loud about a (perhaps related) but different subject :) |
21:06:21 | Jehan_ | JasonJAyalaP: Ah, okay. |
21:06:26 | tillzy | JasonJAyalaP: thats exactly where i stand right now, i really like to experiment with different languages and tools but i often give up if i can't get that quick feel for it tho. for some reason i am still sticking with nimrod even tho i havent gotten that feel for it yet :P |
21:07:15 | JasonJAyalaP | tillzy: Same. Sometimes you feel like there's something special there, and you stick with it even though there are plenty of resources for more mainstream languages |
21:07:41 | * | brovador joined #nimrod |
21:08:14 | Triplefox | If I can solve things with an array, that's the ideal level of abstraction since that's as close as possible to how the computer operates... this thought has been stuck in my head |
21:08:18 | JasonJAyalaP | Jehan_: Maybe I'll start doodling a rough draft of learnxinyminutes for nimrod and upload it to github.com/JasonJAyalaP; I'd appreciate your opinion |
21:08:49 | Jehan_ | I think you can get plenty of feedback from everybody here. :) |
21:09:31 | tillzy | that would be amazing, looking forward to reading it JasonJAyalaP |
21:10:37 | JasonJAyalaP | Triplefox: That's the issue in all high vs low-level issues; All performance vs reasonability (don't know the term..) debates... A programming language is a link between these dumb von neuman machines and creative human mind... How do they interact? |
21:10:52 | * | bogen left #nimrod (#nimrod) |
21:11:20 | Demos | the thing I like about nimrod is that it is pretty easy to build up abstractions over time, which is nice |
21:11:36 | Demos | also you get to use tooling designed for C, like profilers and stuff |
21:12:35 | * | dapz joined #nimrod |
21:12:47 | Araq | hi dapz welcome |
21:12:55 | Araq | hi brovador |
21:13:20 | Triplefox | I guess, wheeling it back to tutorials talk, I feel like emphasis on a low level style helps the introduction |
21:13:39 | Triplefox | Since it has fewer and more common concepts |
21:14:08 | Demos | nimrod is also a pretty easy language to learn, at least it was for me |
21:14:28 | Demos | it has that thing that python has where you can guess what syntax is and you tend to get it right |
21:16:24 | tillzy | i have yet been successfull in my first attempt at rendering another rectangle in the sdl2 example, lol. guess i am a slow learner |
21:21:36 | * | kuzy000_ quit (Ping timeout: 252 seconds) |
21:22:13 | tillzy | probably not a nimrod problem tho, just not getting the hang of the sdl library |
21:23:28 | JasonJAyalaP | tillzy: I wouldn't be hard on yourself. This is programming: One misplaced comma and the whole thing explodes and starts shouting incomprehensible madness |
21:24:05 | tillzy | JasonJAyalaP: this is true haha! |
21:25:56 | EXetoC | the compilers should indeed be nicer to us humans |
21:26:02 | * | BlameStross left #nimrod (#nimrod) |
21:26:55 | EXetoC | "what's that doing there? it's fine, let's just remove it" |
21:32:22 | * | johnsoft quit (Ping timeout: 240 seconds) |
21:38:13 | * | def-- joined #nimrod |
21:40:18 | * | Triplefox_ joined #nimrod |
21:40:30 | * | vegai_ joined #nimrod |
21:44:27 | * | untitaker_ joined #nimrod |
21:44:39 | Araq | dom96, Jehan_ sysio.nim, line 222 |
21:44:49 | Jehan_ | Araq: Que? |
21:44:51 | Araq | we die with "out of memory" but |
21:45:02 | Araq | that's confusing |
21:45:07 | Araq | and wrong |
21:45:13 | * | brovador quit (*.net *.split) |
21:45:16 | * | tillzy quit (*.net *.split) |
21:45:17 | * | def- quit (*.net *.split) |
21:45:18 | * | untitaker quit (*.net *.split) |
21:45:19 | * | vegai quit (*.net *.split) |
21:45:21 | * | Triplefox quit (*.net *.split) |
21:45:22 | Jehan_ | Araq: Not sure about the context. What triggers the error? |
21:45:23 | * | def-- is now known as def- |
21:45:24 | * | bogen joined #nimrod |
21:45:27 | Araq | Jehan_: lib/system/sysio.nim |
21:45:35 | Jehan_ | Which branch? |
21:45:42 | Araq | doesn't matter |
21:45:45 | Araq | but bigbreak |
21:46:06 | Araq | apart from the bug when p is nil |
21:46:16 | Araq | what should setvbuf's failure produce? |
21:46:21 | Araq | IOError? |
21:47:07 | dom96 | is this because of the staticRead changes? |
21:47:29 | Jehan_ | Oh, I think I see. |
21:48:29 | Jehan_ | POSIX says it can fail if the file descriptor is invalid. |
21:48:34 | * | Triplefox_ is now known as Triplefox |
21:48:44 | Jehan_ | No other error condition is listed. |
21:50:15 | Jehan_ | So, IOError sounds legitimate, though the message should probably explain more. |
21:50:16 | Araq | dom96: no |
21:50:31 | Araq | I changed things for nimfix |
21:50:42 | Araq | which triggers the system.open bug |
21:50:50 | Araq | that's been there for years, I think |
21:51:28 | Araq | Jehan_: well open returns a bool, it seems ugly if it can also raise IOError |
21:51:34 | Araq | I think it should discard this |
21:51:49 | Araq | if setting a bigger buffer fails, things still continue to work |
21:51:53 | * | tdc quit (Ping timeout: 272 seconds) |
21:51:57 | Jehan_ | Well, it is an error. Something's seriously broken if it happens. |
21:52:18 | Jehan_ | It works on a FILE *, but the associated file descriptor is wrong. |
21:52:29 | Araq | well we pass 'nil' for it |
21:52:44 | Araq | obviously we won't do that soon |
21:53:12 | Araq | but what if it fails nevertheless? fatal error? exception? |
21:53:21 | Araq | ignore? |
21:53:36 | Jehan_ | POSIX specifies that it should only fail if FILE *'s file descriptor is screwed up. |
21:54:09 | Araq | yeah but raising IOError means it ends up as a listed possible exception |
21:54:16 | Jehan_ | Which usually means something's wrong. I'd guess a closed file or mangled memory? |
21:54:24 | Araq | and that will confuse users |
21:54:32 | Jehan_ | OSError? |
21:54:43 | Araq | it doesn't really matter |
21:54:52 | Araq | raising an exception for this is evil |
21:55:00 | Araq | given how the effects system works |
21:55:14 | Araq | discarding it seems much better |
21:55:17 | Jehan_ | Yeah, but this is undefined behavior. This is what exceptions are for normally. |
21:55:37 | Jehan_ | Something's seriously broken and continuing will make things worse. |
21:55:42 | Araq | you'll get an IOError for read/write immediately afterwards anyway |
21:55:55 | Jehan_ | Hmm, also true. |
21:56:01 | Araq | let's keep 'open' itself clean |
22:09:23 | * | fowlmouth joined #nimrod |
22:11:12 | * | Trixar_za quit (Excess Flood) |
22:14:05 | * | Fr4n quit (Excess Flood) |
22:14:14 | * | BlaXpirit quit (Remote host closed the connection) |
22:14:29 | * | Trixar_za joined #nimrod |
22:14:34 | * | Fr4n joined #nimrod |
22:16:36 | * | fowl quit (Ping timeout: 267 seconds) |
22:18:36 | * | noam__ joined #nimrod |
22:20:54 | * | armin joined #nimrod |
22:21:35 | * | willw40 joined #nimrod |
22:27:25 | * | willwillson quit (*.net *.split) |
22:27:26 | * | noam quit (*.net *.split) |
22:27:27 | * | zling______ quit (*.net *.split) |
22:27:29 | * | reloc0 quit (*.net *.split) |
22:30:13 | * | zling______ joined #nimrod |
22:36:54 | * | zling______ quit (Changing host) |
22:36:54 | * | zling______ joined #nimrod |
22:40:09 | JasonJAyalaP | Araq: Before I go: I'm still hosting the nimrod 0.9.4 mac installer (http://jasonayala.com/files/Nimrod-0.9.4.pkg); I'm not sure if you want to wait until the next version, or if you want to replace the current download with that. I can host it (DigitalOcean still isn't enforcing the 1TB bandwidth cap... :) or you can host it wherever (of course) |
22:40:44 | Araq | ah you're the mac installer guy |
22:40:53 | Araq | well please come back |
22:41:09 | Araq | so that we can discuss how to document things |
22:42:10 | JasonJAyalaP | Araq: Alrighty |
22:42:17 | * | JasonJAyalaP left #nimrod (#nimrod) |
22:43:19 | * | BlameStross1 joined #nimrod |
22:47:13 | * | armin1 joined #nimrod |
22:47:14 | * | Varriount_ joined #nimrod |
22:50:56 | * | comex joined #nimrod |
22:51:07 | * | zahary1 joined #nimrod |
22:53:17 | * | Varriount quit (Ping timeout: 246 seconds) |
22:53:18 | * | armin quit (Ping timeout: 246 seconds) |
22:53:20 | * | comex_ quit (Ping timeout: 246 seconds) |
22:53:23 | * | Ven quit (Ping timeout: 246 seconds) |
22:53:26 | * | dapz quit (Ping timeout: 246 seconds) |
22:53:27 | * | zahary quit (Ping timeout: 246 seconds) |
22:53:30 | * | phI||Ip quit (Ping timeout: 246 seconds) |
22:53:48 | * | phI||Ip joined #nimrod |
22:55:02 | * | uber quit (Quit: bye) |
22:57:54 | * | uber joined #nimrod |
22:58:17 | * | francisl quit (Quit: francisl) |
22:59:18 | * | armin1 is now known as reloc0 |
23:02:30 | dom96 | Araq: Maybe we should introduce a convention to put tests (that we currently put under when isMainModule) under when defined(testing)? |
23:02:56 | Araq | dom96: for what? |
23:03:17 | dom96 | Araq: So that babel can test them. |
23:03:33 | Araq | hrm |
23:03:33 | EXetoC | why not have separate modules? |
23:05:29 | dom96 | I also think that we should simplify the unit test module into a test macro to be used as a pragma in procs. |
23:07:16 | EXetoC | I think it seems like a better idea to keep it separate |
23:07:18 | EXetoC | why a pragma? |
23:08:42 | EXetoC | anyway, I do indeed want 'check' to be independent of other things |
23:08:48 | dom96 | hrm, I guess a 'test' macro taking a test name as first param wouldn't be much more complex. |
23:08:54 | EXetoC | at least the most useful functionality |
23:09:22 | dom96 | But I think the unittest module needs to be simplified. |
23:12:38 | Araq | dom96: does your asycnc macro use parseString()? |
23:13:08 | dom96 | Araq: no |
23:13:18 | EXetoC | check seems more useful than assert in general |
23:13:49 | dom96 | EXetoC: what's different about it? |
23:15:55 | EXetoC | dom96: the fact that it breaks up the expression and stringifies them. very convenient |
23:16:15 | dom96 | EXetoC: assert does that too |
23:17:31 | EXetoC | huh |
23:17:48 | * | darkf joined #nimrod |
23:18:01 | EXetoC | no |
23:18:28 | dom96 | I'm not sure what you mean then. Can you give me an example? |
23:23:51 | EXetoC | dom96: 'x > f(y)' would stringify x, y and f(y) |
23:24:28 | dom96 | you mean it would give the underlying value of them? |
23:25:19 | EXetoC | yes |
23:25:58 | EXetoC | why am I still up... cya |
23:42:30 | Onionhammer | i like that when(testing) idea |
23:42:49 | Onionhammer | but when you did it, it would run them on ALL modules |
23:42:57 | Onionhammer | that you have imported |
23:43:01 | Onionhammer | not just your curretn module |
23:44:37 | dom96 | if you run 'babel test' then sure |
23:44:54 | Onionhammer | if it's a convention |
23:46:08 | Onionhammer | seems like tests would potentially get re-run a lot |
23:46:14 | Onionhammer | if babel packages import other babel packages |
23:46:28 | * | bjz quit (Ping timeout: 250 seconds) |
23:46:59 | dom96 | yes, so it would make more sense to just run the tests in that packages .nim files |
23:47:24 | Onionhammer | yeah |
23:48:41 | Onionhammer | cant you just define isMainModule on each of the .nim when "babel test" runs? |
23:49:09 | Onionhammer | or would you need compiler support for that |
23:49:55 | dom96 | it would be defined for you since you would be compiling the modules lol |
23:50:28 | dom96 | Not all code inside a 'when isMainModule' is for testing though |
23:51:25 | Onionhammer | true |
23:52:09 | Onionhammer | what about another babel.cfg field recognized specifying a 'test' module |
23:52:35 | Onionhammer | default to 'tests.nim' file in each babel package |