--- Log opened Mon Jun 12 00:00:02 2017 |
--- Day changed Mon Jun 12 2017 |
00:00 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
00:00 | | mode/#code [+o Alek] by ChanServ |
00:14 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
00:17 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
00:17 | | mode/#code [+o Alek] by ChanServ |
00:34 | < ToxicFrog> | It's alive! |
00:34 | < ToxicFrog> | Mostly. |
00:34 | < ToxicFrog> | void word_anon_0xd36f70() { |
00:34 | < ToxicFrog> | push(2); |
00:34 | < ToxicFrog> | word_X2A_impl(); |
00:34 | < ToxicFrog> | } |
00:34 | < ToxicFrog> | The bit that actually wires that into the dictionary still needs to be written. |
01:09 | < ToxicFrog> | ahahahahaha whoooops |
01:09 | < ToxicFrog> | { (Word*)1, word_double_impl, word_double_name, SELF_IN_FLASH | NEXT_IN_FLASH | NAME_IN_FLASH | 16 }, |
01:10 | < ToxicFrog> | That "16" at the end is the IS_BYTECODE flag, meaning that when compiling this word it should be compiled as OP_CALLWORD,<pointer to start of bytecode> rather than as a pointer to the implementation function |
01:10 | < ToxicFrog> | And in memory, during the session in which this word is defined, that is true |
01:10 | < ToxicFrog> | However, the version baked into the interpreter at compile time is not bytecode, it's C. |
01:11 | < ToxicFrog> | This has tragic results when you try to call it, it turns out. |
01:11 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
01:18 | < ToxicFrog> | It's aliiiiiiive! |
01:19 | < ToxicFrog> | Now I just need to rewrite the bootstrap process, because right now it totally doesn't work as soon as you want to define a word during the bootstrap process and then use it later in the process |
01:19 | < ToxicFrog> | And since absolutely everything except {, }, c/file, c/defn, and list is defined as part of this process... |
03:06 | | * ToxicFrog publishes the thing: https://github.com/ToxicFrog/notforth |
04:05 | <&McMartin> | WEYKENT THE DEALLOCATOR |
05:08 | | celticminstrel [celticminst@Nightstar-jb792f.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:58 | | Turaiel is now known as Turaiel[Offline] |
06:23 | | Kindamoody[zZz] is now known as Kindamoody |
06:29 | | Kindamoody is now known as Kindamoody|out |
06:29 | | macdjord|slep is now known as macdjord |
07:18 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
07:18 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
09:30 | | RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Ping timeout: 121 seconds] |
10:55 | | mac [macdjord@Nightstar-ahbhn1.cable.rogers.com] has joined #code |
10:55 | | mode/#code [+o mac] by ChanServ |
10:58 | | macdjord [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [Ping timeout: 121 seconds] |
11:17 | < ToxicFrog> | wut |
11:17 | <~Vornicus> | wut wut? |
11:17 | < ToxicFrog> | &McMartin | WEYKENT THE DEALLOCATOR |
11:18 | <~Vornicus> | <McMartin> Waykent the Deallocator is one of the feared and forgotten Old Gods of the System in System's Twilight. |
11:48 | | * TheWatcher clones notforth, compiles it no problems, has no idea what to do with it though >.> |
12:49 | | celticminstrel [celticminst@Nightstar-jb792f.dsl.bell.ca] has joined #code |
12:49 | | mode/#code [+o celticminstrel] by ChanServ |
13:02 | < ToxicFrog> | TheWatcher: running `./notforth` will give you a REPL. There isn't much of the core library implemented yet, though. |
13:03 | < ToxicFrog> | Try `words` to list all builtin words (with their dictionary and implementation addresses) |
13:06 | < ToxicFrog> | `.` is print, `?` and `!` are peek and poke, e.g. `<addr> ? .` to read memory and `<addr> <val> !` to write it -- with some cleverness you might be able to modify existing dictionary entries that way! |
13:06 | < ToxicFrog> | There's basic math operators, and you can define functions, e.g. |
13:06 | < ToxicFrog> | :square { dup * } defn |
13:07 | < ToxicFrog> | But I haven't implemented flow control yet, so you're sharply limited in what you can do with it. |
13:07 | < ToxicFrog> | If you have an Arduino kicking around you can flash it with notforth and enjoy the novely of a REPL running on it, but it's not any more powerful than the hosted version |
13:07 | < ToxicFrog> | Well, I guess you can do more things with ! if you know which addresses to poke |
13:47 | <@TheWatcher> | Aha, neat. |
13:52 | | celticminstrel [celticminst@Nightstar-jb792f.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
13:52 | | celticminstrel [celticminst@Nightstar-jb792f.dsl.bell.ca] has joined #code |
13:52 | | mode/#code [+o celticminstrel] by ChanServ |
14:13 | < ToxicFrog> | builtins/00-core.nf contains all the builtin words except the ones needed for the bootstrap process, so reading that might be insightful -- they're all in C so far, though |
14:53 | | * gnolam flails at the Hardest Problem in Computer Science. |
14:54 | <@TheWatcher> | Call it "Isambard"~ |
14:58 | <@abudhabi> | gnolam: "tmp"? |
15:47 | <@gnolam> | :P |
16:08 | < ToxicFrog> | TheWatcher: anyways, my TODO list right now is "better bootstrapping", "error handling more sophisticated than abort()", and "lots more library functions" |
16:09 | < ToxicFrog> | At which point it should be possible to actually build things with it |
17:48 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
19:29 | | VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
19:32 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
20:19 | | VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Leaving] |
20:19 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
20:19 | | mode/#code [+ao VirusJTG VirusJTG] by ChanServ |
22:11 | < sshine> | I'm making a site that has external User IDs. I'd like for them to be numbers and appear random, but I'd also like to generate them in a sane way. |
22:13 | < sshine> | a super simple way would be to pick some upper bound, e.g. 10^8 and simply auto_increment the internal user_id and then add some fixed prime > 10^8 modulo 10^8. |
22:14 | < sshine> | but then an attacker might simply register two users in a row, determine the difference and he'll be able to determine user growth rate at any later point by registering a new user. |
22:15 | < sshine> | ideally it'd just be a unique random number that wasn't picked before, but https://stackoverflow.com/questions/28500029/generate-a-random-number-which-is-n ot-there-in-a-table-in-sql-server isn't very helpful. |
22:15 | < sshine> | s/unique // |
22:42 | | Kindamoody|out is now known as Kindamoody |
22:44 | | * TheWatcher ...s at the blender ui |
22:45 | <@TheWatcher> | What sort of lunatic came up with this thing? |
22:45 | | Kindamoody is now known as Kindamoody[zZz] |
22:46 | | Turaiel[Offline] is now known as Turaiel |
22:50 | <@Tamber> | TW: From elsenet. <<Ugh. That thing. "But it makes perfect sense!" To the people who designed it. For everyone else, it's stockholm syndrome!>> |
23:35 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds] |
--- Log closed Tue Jun 13 00:00:10 2017 |