|
Parrot 3.7.0 "Wanda" | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 25 August 2011. |
|||
| NotFound | How can I prevent the temporary executables created by c_output_is from deletion? | 00:01 | |
| whiteknight | there's a global variable you can set | 00:02 | |
| ack for POSTMORTEM | |||
| <parrot git:whiteknight/6model> make bootstrap-ops | 00:04 | ||
| ./ops2c --core --quiet | |||
| Cannot repeat with negative arg | |||
| current instr.: 'parrot;Ops;Emitter;_block1153' pc 64771 (compilers/opsc/gen/Ops/Compiler/Grammar.pir:4098) (compilers/opsc/src/Ops/Emitter.pm:150) | |||
| awesome | |||
| NotFound | Amazing, infinite recursion in Default | 00:05 | |
| cotto | You have to be special to get that error. | 00:06 | |
| NotFound | As expected, it comes from 6model initialization. | 00:07 | |
| cotto | whiteknight, how much of a plan do you have for bringing 6model into core? | 00:08 | |
| whiteknight | cotto: what do you mean? | ||
| cotto | whiteknight, how are you going to start integrating it? | ||
| whiteknight | First step is to get the code into core, and get NQP able to use it from Parrot instead of through dynops and dynpmcs | 00:09 | |
| after that, we pick fruit as we find it | 00:10 | ||
| NotFound | whiteknight: of course, the culprit is a static var. | ||
| static PMC *scs = NULL; | 00:11 | ||
| whiteknight | awesome | ||
| I haven't really looked at it yet | |||
| cotto | the 6model code has a lot of those | ||
| whiteknight | some of the code moving was sloppy and fast | ||
| NotFound | Wich isn't NULL no more at the second initialization. | ||
| cotto | I wonder if we'd be better off porting instead of copy/pasting. | ||
| whiteknight | what do you see as the difference? I moved the code over and now we are playing with it until it does what we want | 00:12 | |
| cotto | more to get a higher bus number than because of code quality, though the code won't win any beauty contests | ||
| s/porting/reimplementing/ | 00:13 | ||
| NotFound | The comments at the start of src/6model/serialization_context.c are discouraging | ||
|
00:13
kid51 joined
|
|||
| kid51 gets back in from a pleasant drive in a hurricane | 00:13 | ||
| Is there any way we could eliminate these 3 warnings during 'make'? | |||
| whiteknight | This gives us a good starting point, and we can build from here. If we decide we don't like the code as-is and it takes too much effort, we can do a ground-up rewrite | ||
| kid51 | 396:src/platform/generic/io.c:203: warning: no previous prototype for 'Parrot_io_async' | ||
| 460:src/pmc/filehandle.c:1200: warning: implicit declaration of function 'Parrot_io_async' | |||
| 461:src/pmc/filehandle.c:1200: warning: nested extern declaration of 'Parrot_io_async' | |||
| (from 'master' a few commits back) | 00:14 | ||
| NotFound | kid51: yes, git pull | ||
| kid51 | Have you committed to master in last hour? | ||
| NotFound | kid51: no, a few hours ago | ||
| kid51 | Thx, I'll try on my next test in master | 00:16 | |
| whiteknight | FFFFUUUUUU | ||
| here's the line that's failing: my $space := pir::repeat__SsI(' ', 30 - pir::length__Is($op.full_name)); | 00:17 | ||
| and the op name that's tripping it up: repr_is_attr_initialized_i_p_p_s | |||
| 32 characters long | |||
| YAY! AWESOME CODE IS AWESOME | |||
| kid51 | g++ build in 6model branch now failing only one test file | ||
| cotto | maoilhalkjhgalkhalghad | 00:18 | |
| opsc can't handle the awesome | |||
| whiteknight | I'm fixing it no | 00:20 | |
| now | |||
| cotto | I bet it's a really complicated fix. | 00:21 | |
| whiteknight | OMG it does the same stupid thing in multiple places | 00:23 | |
| same thing. Same error | |||
| line 150 and line 200 | |||
| I <3 this code | |||
| soh_cah_toa | wow, i can not believe how clean and well commented this 6model code is | 00:24 | |
| i might just be able to actually help out b/c everything is so clear | |||
| cotto | soh_cah_toa, sarcasm? | ||
| soh_cah_toa | no, not at all | ||
| it actually is | |||
| cotto | good news then! | ||
| Tene | Yeah, I really like 6model's code. | 00:25 | |
| soh_cah_toa | there ain't a thing in the world that makes me happier than looking at nice clean code ;) | 00:27 | |
| anyway, does this mean that we're not going to use pmc's any more and have "traditional" objects? or is this more of a meta-pmc protocol? | 00:29 | ||
| cotto | Is a PMC a PMC if you call it an object? | 00:30 | |
| whiteknight | heresy | ||
| soh_cah_toa | hm | ||
| cotto | That's the part of the transition that makes me nervous, btw. It'll need thought. | 00:32 | |
| soh_cah_toa | do we even use a mop right now and 6model is gonna replace it or is this gonna be a brand new mop for us? | 00:33 | |
| whiteknight | the answer is : sortof | 00:34 | |
| I mean, we have an object model, but it's not one that a lot of thought has ever gone into | |||
| we have Class and Object PMCs, etc | |||
| soh_cah_toa | oh right | ||
| whiteknight | and PMCProxy, the red-headed stepchild | ||
| cotto | So important, yet so unknown. | 00:35 | |
| dalek | rrot/whiteknight/6model: 363813c | Whiteknight++ | / (7 files): ops2c Emitter was failing for ops with a fullname longer than 30 characters. Fix that. Add 6model.ops to the build. make bootstrap-ops. Now the build is failing |
00:38 | |
| whiteknight | hmmm... the build works again after a reconfig | 00:40 | |
| ops2c is such an amazing, wonderful, stable part of the process | |||
| jnthn__: ping | 00:41 | ||
| some parts of 6model we definitely will want to redo. Many of the ops, specifically | 00:43 | ||
| if everything is 6model internally, we can update most of our existing ops to use it and we can get rid of the new ops | 00:44 | ||
|
00:46
silug joined
|
|||
| Tene | +1 | 00:51 | |
| dalek | rrot/whiteknight/kill_threads: 386dae9 | Whiteknight++ | src/gc/gc_ (3 files): Remove some thread-related GC calls |
01:04 | |
| rrot/whiteknight/kill_threads: 934ad0a | Whiteknight++ | MANIFEST (2 files): merge in cotto++'s changes. Fix conflicts |
|||
| cotto | I made changes? | ||
| soh_cah_toa | seen dukeleto? | 01:05 | |
| aloha | dukeleto was last seen in #parrot 1 days 6 hours ago saying "atrodo: manhattan distance". | ||
| whiteknight | cotto: yeah, you had a few commits the other day | 01:06 | |
| I haven't dealt with them until now | |||
|
01:07
Kulag joined
|
|||
| nopaste | "kid51" at 192.168.1.3 pasted "whiteknight/6model branch: Only current failure on linux/i386 w/gcc build." (27 lines) at nopaste.snit.ch/75211 | 01:09 | |
| whiteknight | oh right, we can murderlize the share_ro vtable too | 01:13 | |
| yay! | 01:22 | ||
| cotto | I won't miss that. | ||
| dalek | rrot/whiteknight/6model: 030df1a | jkeenan++ | src/ (5 files): [codingstd] Break lines > 100 characters. |
01:36 | |
| whiteknight | oh, we're going to love this | 01:43 | |
| dalek | rrot/whiteknight/kill_threads: 5ad98b9 | Whiteknight++ | src/ (11 files): Remove many references to thread-related functions. Remove share and share_ro vtables. |
01:46 | |
| rrot/whiteknight/kill_threads: e972665 | Whiteknight++ | / (4 files): Remove references to remaining thread-related functions in the code. Parrot builds and passes most tests that aren't specifically for threading features |
|||
| rrot/whiteknight/kill_threads: 23eae59 | Whiteknight++ | / (13 files): remove atomic stuff: headers, source files, and tests |
|||
| whiteknight | it's like a weight being lifted | ||
| dalek | rrot/whiteknight/kill_threads: 15a2e3d | Whiteknight++ | t/src/extend_vtable.t: fix numbering for extend_vtable.t |
01:49 | |
| whiteknight | okay, I think that is enough work for one day | ||
| by the end of this weekend, we could have 6model AND no more threads | 01:50 | ||
| it's fun to think about | |||
| bubaflub | whiteknight++ | 01:51 | |
| cotto | fsvo "having 6model" | 01:53 | |
| where having != using | |||
| but it's an important step | |||
|
02:04
kid51_ joined
02:21
Coke joined
02:25
preflex joined
|
|||
| soh_cah_toa | kid51: what are you doing online? i thought brooklyn was being evacuated? | 03:09 | |
|
03:12
jsut joined
|
|||
| dalek | rrot/whiteknight/6model: f0b5c16 | jkeenan++ | src/6model/ (2 files): [codingstd] Add ASSERT_ARGS. |
03:45 | |
| rrot/whiteknight/6model: aa2eed9 | jkeenan++ | src/6model/repr (3 files): [codingstd] Add ASSERT_ARGS. |
|||
| rrot/whiteknight/6model: 656728f | jkeenan++ | src/ (7 files): [codingstd] Add ASSERT_ARGS. |
|||
| rrot/whiteknight/6model: 230f5ef | jkeenan++ | src/6model/reprs/ (2 files): [codingstd] Add ASSERT_ARGS. |
|||
| kid51 | soh_cah_toa: Brooklyn is a big place! | ||
| 2.5 million people | 03:46 | ||
| Where would we all go? | |||
| soh_cah_toa | i thought there were state-supported shelters? | ||
| kid51 | I actually went for a drive down to Brighton Beach at 7:00 pm! | ||
| "State-supported shelters" Hah! | 03:47 | ||
| soh_cah_toa | i know, i know | ||
| kid51 | Those would house 10K people at most. | ||
| soh_cah_toa | i'd hate to live in a shelter too but i'd also hate to die in a hurricane | ||
| kid51 | The rain didn't get really heavy until I was out in my car | ||
| A lot of rain in the past 4 hours ... but only now is the wind picking up to the point where it's knocking my venetian blinds around ab bit. | 03:48 | ||
| soh_cah_toa | yeah, i suppose staying put in the nyc area wouldn't be all that bad. i'd imagine that it'd lose a lot of force as it runs up the coast | 03:49 | |
| nopaste | "kid51" at 192.168.1.3 pasted "whiteknight/6model branch: warnings during gcc build" (35 lines) at nopaste.snit.ch/75266 | 03:50 | |
| kid51 | Perhaps you can name our next release after this hurricane. | 03:51 | |
| time for bed | |||
| soh_cah_toa | oh, not a bad idea | ||
| see ya :) | |||
| benabik | IIRC, they evacuated something like 300k out of 8.2M in New York City. | 04:02 | |
| soh_cah_toa | oh, not everybody. ok | ||
| benabik | The lowest areas of the city. Probably a bunch of other people left voluntarily too. I know my sister-in-law went upstate to her parents. | 04:03 | |
| soh_cah_toa | makes sense | ||
|
04:06
particle1 joined
|
|||
| plobsing_ | benabik: did you wind up solving the issues you were having with testing select? | 04:15 | |
|
04:15
lateau joined
|
|||
| benabik | plobsing_: The third fdset is really platform dependent, I think. | 04:16 | |
| plobsing_ | benabik: the issue is that select() is not meaningful on files | 04:17 | |
| benabik | plobsing_: That too. Changing it to using sockets would probably make it far more portable. | ||
| plobsing_: Although harder to test. | |||
|
04:18
lateau left
|
|||
| plobsing_ | sockets, pipes, or other things which can have latency at the abstraction level that filehandles work at (does not consider disk-read latency) would all work great | 04:18 | |
| benabik | select is only available on Windows for sockets. | 04:19 | |
| plobsing_ | about halfway down my manpage (linux), it says "File descriptors associated with regular files shall always select true for ready to read, ready to write, and error conditions." | 04:20 | |
| don't we have a socket PMC? don't we test that somehow? | 04:21 | ||
| benabik | That seems to be true on OS X, but not Linux. On Linux, it seems to be true for R, W, but not E. | ||
|
04:27
lateau joined
|
|||
| plobsing_ | yeah, I'm not sure why it is doing that | 04:32 | |
| cotto | socket.pmc seems to be a moderately well-tested thing | 04:33 | |
| plobsing_ | tests appear to exist, so I'm going to assume that our testsuite creates sockets | 04:35 | |
| cotto | That sounds safe. I wouldn't assume too much more. | 04:36 | |
|
04:36
redicaps joined
|
|||
| plobsing_ | benabik: I've found out why OS X sets error bits but Linux does not - the POSIX spec is self-contradicting | 04:43 | |
| benabik | plobsing_: POSIX-- | ||
| plobsing_ | "If the operation is meaningless for a particular file type, pselect() or select() shall indicate that the descriptor is ready for read or write operations, and shall indiā cate that the descriptor has no exceptional condition pending" | 04:45 | |
| about half a page up in the same manpage from the bit about setting the error flag for normal files | |||
| cotto | plobsing_, ... | 04:49 | |
| That's a gem. | 04:50 | ||
| plobsing_ | posix me harder baby! | 04:53 | |
|
04:58
Khisanth joined
05:16
Khisanth joined
05:52
nbrown joined
|
|||
| dalek | kudo/nom: 1848338 | moritz++ | / (4 files): change names of backtrace classes to match spec |
05:54 | |
|
06:34
fperrad joined
06:58
JimmyZ joined
07:15
cotto joined
07:53
dodathome joined
07:56
Khisanth joined
08:13
mj41 joined
08:55
Eclesia joined
|
|||
| Eclesia | hi | 08:55 | |
|
09:46
whiteknight joined
|
|||
| JimmyZ | good morning, whiteknight | 09:57 | |
| whiteknight | hello JimmyZ | 10:13 | |
| Eclesia | question : how do I get the call of an exception pmc ? | 10:18 | |
| call stack* | |||
|
10:26
Khisanth joined
|
|||
| whiteknight | e.backtrace returns an array of hashes with data. e.backtrace_strings returns pre-formatted strings for the backtrace | 10:28 | |
| e.backtrace() and e.backtrace_strings() are methods | 10:29 | ||
| Eclesia | whiteknight: thanks | 10:30 | |
|
10:31
mtk joined
|
|||
| Eclesia | Is there a way to make equaly test without errors. I made a loop and == on an array but obtain : Multiple Dispatch: No suitable candidate found for 'is_equal', with signature 'PP->I' | 10:32 | |
|
10:42
Khisanth joined
|
|||
| whiteknight | You can add an is_equal vtable to your type | 10:43 | |
| Eclesia | whiteknight: e.backtrace_strings return a single string with \\n in it ? shouldn't it be several strings ? | ||
| whiteknight | it returns an array of strings with \\n in them | ||
| each string is the backtrace of a throw or rethrow | |||
| Eclesia | whiteknight: the stack do not contain the last instruction. it's normal ? | 10:49 | |
| Null PMC access in get_integer() | 10:50 | ||
| current instr.: 'parrot;em;eriaparser;v0;syntaxsuga... | |||
| called from Sub 'parrot;em;eriaparser;v0;Pa ... | |||
| called from Sub 'parrot;em;eriaparser;v0;Pa... | |||
| the current instr in not in the text | 10:51 | ||
|
11:10
jsut joined
|
|||
| whiteknight | hmm, that seems like a bug | 11:18 | |
| nopaste | "Eclesia" at 192.168.1.3 pasted "exception output difference" (39 lines) at nopaste.snit.ch/75474 | 11:28 | |
| Eclesia | whiteknight: here are the difference . it's like if the exception stack was not freezed. akward | 11:29 | |
| the first element in the stack is the problem : | 11:30 | ||
| current instr.: 'parrot;em;eriaparser;v0;ParserEria;error' pc 528 (target-pir/em-eriaparser-v0/ParserEria.pir:199) (lib-0/em-eriaparser-v0/ParserEria.wx:126) | |||
| called from Sub 'parrot;em;eriaparser;v0;ParserEria;error' pc 528 (target-pir/em-eriaparser-v0/ParserEria.pir:199) (lib-0/EriaTest.wx:17) | 11:31 | ||
| they don't point to the same file and line. | |||
| whiteknight | Okay, it's the same number of frames, but the top frame has the wrong information? | 12:01 | |
|
12:09
ambs joined
12:14
Khisanth joined
13:52
nbrown joined
15:15
mj41 joined
15:43
mj41 joined
17:02
kid51 joined
|
|||
| dalek | rrot: c22297f | jkeenan++ | config/init/defaults.pm: Eliminate needlessly duplicated option listing. nwellnhof++. |
17:02 | |
|
17:19
wknight8111 joined
|
|||
| dalek | op: 936eefc | Whiteknight++ | / (7 files): Add the initial stage0 code. Right now, it's code mostly copied from the Cafe project with permission from Zaach. Original code is released under an MIT style license |
17:27 | |
| op: 528a285 | Whiteknight++ | / (2 files): Fix makefile so we can build stage0 |
|||
| op: 3bd2666 | Whiteknight++ | / (5 files): Add in a new Winxed AST stage (WAST). Start implementing translations from jison ast to wast. Add in a new frontend for testing |
|||
|
17:32
cotto joined
|
|||
| dukeleto | whiteknight++ # jsop | 17:33 | |
| dalek | op: fdc01b5 | Whiteknight++ | README: +README |
||
| dukeleto | whiteknight: i was about to ask for a README, and one appears! | 17:34 | |
| whiteknight | it's like magic | ||
| nothing to read yet. I've been playing with this for a few hours this morning, so there isn't a lot to it yet | 17:35 | ||
| I think that with some basic ast transformations and slightly modified codegen, we can create winxed from javascript | 17:37 | ||
| then, if we have a suitable object model, a working runtime, and pcre bindings, we should be able to bootstrap | 17:38 | ||
| Tene | and if we also had a waffle iron, we could make breakfast. | 17:39 | |
| whiteknight | any approach is going to be tricky, this just seemed like a relatively easy one | 17:40 | |
| cotto | ~~ | ||
| whiteknight | winxed is much closer to JS than PIR is, for instance, so the stage 1 codegens can be simplified | ||
|
17:40
kid51_ joined
|
|||
| whiteknight | plus we don't have to deal with things like reordering expressions, allocating registers, etc | 17:42 | |
| cotto | whiteknight++ #nice README | 17:43 | |
| whiteknight | I'm about 30% through with the basic parse tree stuff. Once I start generating any winxed code at all, I can start on the stage0 runtime | ||
| all that needs to contain is the handful of types and methods that stage1 uses | 17:44 | ||
| dalek | Heuristic branch merge: pushed 1500 commits to parrot/nwellnhof/compiler_flags by jkeenan | 18:00 | |
| cotto | aloha, kid51 is also the branchomancer | 18:08 | |
| aloha | cotto: Okay. | ||
|
18:24
soh_cah_toa joined
18:26
contingencyplan joined
|
|||
| dalek | op: a1e3580 | Whiteknight++ | / (3 files): Flesh out a few nodes. We now generate some valid winxed for certain, trivial test programs |
18:53 | |
|
18:56
plobsing joined
19:09
lateau left
19:25
lucian joined
|
|||
| dalek | tracwiki: v82 | cotto++ | ParrotQuotes | 19:26 | |
| tracwiki: trac.parrot.org/parrot/wiki/ParrotQ...ction=diff | |||
| NotFound | While there are people worried by the trend of languages that compile to javascript, we try to compile javascript to winxed. Parrot is one step beyond! | 19:39 | |
| benabik | NotFound: That way, we can run all of _those_ languages on Parrot. :-D | ||
| I'm sure Language X -> JS -> Winxed -> Parrot won't be too slow. | 19:40 | ||
| NotFound | Maybe slow compilation, but runtime performance doesn't have to be be too bad. | ||
| whiteknight | I'm excited about this approach | 19:51 | |
| I'm making pretty good progress, if i may say so myself | |||
| cotto | You may. Getting a trivial program working that quickly is impressive. | 19:52 | |
| NotFound | I've always hoped that winxed as target for code generators will be easy to use. | 19:53 | |
| cotto | NotFound++ # sneaky foresight | 19:58 | |
|
20:01
davidfetter joined
|
|||
| whiteknight | I'm finishing up some basic expression types and I'll upload an example | 20:06 | |
| I'm doing one node type at a time. Once I get a few examples together it should be easy enough for other people to jump on | |||
|
20:08
Coke joined
|
|||
| whiteknight | unfortunately, new projects like this really demonstrate how uncreative I am with names | 20:09 | |
| jsop, and wast, etc | |||
| bubaflub | whiteknight: are you using any of rohit's work? | 20:12 | |
| dalek | nxed: ef3364c | NotFound++ | t/basic/05new.t: test keyed new with var argument |
||
|
20:13
whiteknight joined
20:18
perlite joined
20:20
tty234 joined
20:29
davidfetter joined
|
|||
| dalek | rrot/no_ranlib: 238fad8 | jkeenan++ | config/ (3 files): Create a branch to see if we can eliminate 'ranlib' from configuration. |
20:29 | |
| benabik | ranlib? | 20:30 | |
| benabik reads the fine manpage. | |||
| plobsing | benabik: builds index tables for static libs | ||
| but since we usually don't use static libs... | 20:31 | ||
| kid51 | I'm working on this nwellnhof/compiler_flags branch. | 20:32 | |
| Am trying to see how much we can reduce differences between what happens now and what would happen if that branch were applied. | |||
| trac.parrot.org/parrot/ticket/1044 | 20:34 | ||
|
20:38
Kulag joined
|
|||
| kid51 | I predict the answer will be that we *cannot* omit it. I see this line consistently in my build logs on Darwin: | 20:42 | |
| ranlib blib/lib/libparrot.a | |||
| But that line is not present in build logs on Linux. | |||
| plobsing | why do we build a static library by default? | 20:43 | |
| kid51 | Of course, it may be that the 'cc' invokes it in the course of 'make' whether we have a value for it in %PConfig or not. | 20:44 | |
| sorear | GNU ar has ranlib functionality built-in | ||
| kid51 | plobsing: I don't know ... but then I don't understand much about static vs dynamic libraries | ||
| sorear | plobsing: static libraries are faster on most platforms, and not just at load time | 20:45 | |
| kid51 | sorear: Since we *do* look for 'ar' in configuration, then we probably don't need 'ranlib' in init::defaults | ||
| plobsing | sorear: this may be true, but the fact is that 90% (or more) of people link dynamically | ||
| sorear | kid51: except OSX doesn't use GNU ar | ||
| dalek | op: f603688 | Whiteknight++ | stage0/js/ (2 files): Add some load/init boilerplate for now. Does nothing. Fix up CallExpr nodes. Add some better error messages so we can see what is not being implemented |
||
| op: 691f901 | Whiteknight++ | examples/func_call.js: Add in an examples directory, which will include files we successfully parse. I'll add more stuff there as we get it implemented |
|||
| op: c233a78 | Whiteknight++ | / (3 files): Implement CallExpr and add an example file that parses correctly |
|||
| plobsing | sorear: do you run stali by any chance? | 20:46 | |
| sorear | plobsing: programming language implementations are a major exception to that trend. Perl 5.12 and Mono 2.10 both create static libraries by default | ||
| kid51 | sorear: Then what does it use? I also see a line beginning with 'ar' in my Darwin build logs | ||
| sorear | s/are/seem to be/ | ||
| kid51: I guess BSD ar, which I don't know much about | |||
| plobsing: never heard of it. | |||
| whiteknight: I recomment you talk to masak, ey's great with original names. I got 'niecza' that way | 20:47 | ||
| kid51 | In my Darwin 'make' logs, I see this on the line immediately before the sole 'ranlib' call: | ||
| ar cr blib/lib/libparrot.a src/string/api.o src/ops/core_ops.o ... [long list of object files] | |||
| soh_cah_toa | sorear: what does niecza mean, btw? | 20:48 | |
| sorear | heh heh heh, blib | ||
| soh_cah_toa: it's mangled Czech for a lack of time. | |||
| badly mangled. | |||
| soh_cah_toa | interesting | 20:49 | |
| kid51 | I have a BSD 'ar' and I have a 'ranlib' which is part of Apple's libtools | ||
| sorear | ar is actually a general-purpose archiver, like "tar"; it doesn't have builtin knowledge of the .o file format | 20:50 | |
|
20:50
mj41 joined
|
|||
| plobsing | debian .deb files are ar archives IIRC | 20:50 | |
| sorear | yes | ||
| plobsing | 'are ar archives' alliteration unintended | 20:51 | |
| sorear | ranlib creates an index file containing data like "Parrot_find_method_with_cache => oo.o" | ||
| (not actually a text file IIRC, and certainly not in that format) | 20:52 | ||
| the GNU folks are a bit less sold on separation of concerns, and tend to combine related tools | |||
| GNU ar automatically generates the index file (and as such, contains a .o parser) | 20:53 | ||
| kid51 | So, my hunch is that we do *not* need a setting for 'ranlib' in init::defaults. If 'make' needs it finds it whether or not it's present in config_lib.pir. | 20:54 | |
| sorear | kid51: how can 'make' find it? | 20:55 | |
| kid51 | I suspect it's actually the C compiler that's finding it. | ||
| plobsing | kid51: the C compiler isn't doing it | 20:56 | |
| search the Makefile for 'RANLIB' | |||
| kid51 | But I just created a branch in which I commented out the assignment to RANLIB in config/gen/makefiles/root.in -- and it compiled and tested fine. | 20:57 | |
| plobsing | kid51: that's because nothing *uses* the static library | ||
| which brings us back to my point about why we're building it at all | 20:58 | ||
| kid51 | plobsing: Well, that question is out of my scope. | ||
| I'm wondering why nwellnhof chose ':' as a hard-coded setting for ranlinb in init::defaults in his branch. | 20:59 | ||
| plobsing | kid51: ':' is a nop shell command | 21:00 | |
| kid51 | Can you explain that a bit? | ||
| plobsing | ': foo bar baz', when sent to the shell, will do nothing (fsvo nothing), without complaining | 21:01 | |
| dalek | op: 8292856 | Whiteknight++ | stage0/js/wast.js: trivial fix. Don't put parens around the invocant if it's a basic literal |
||
| op: 267af0d | Whiteknight++ | / (3 files): Implement NewExpr handling. Add an example |
|||
| plobsing | if you are using GNU ar, you don't need to run ranlib (since GNU ar already generates the index), but the makefile wants to call *something* | ||
| so we need to call something, but do nothing, which is what ':' is for | 21:02 | ||
| kid51 | Okay. | ||
| So the point of TT #1744 was to reduce our dependence on Perl 5's ccflags setting. ... | |||
| ... But I think that many of nwellnhof's choices are too Linux-centric. | 21:03 | ||
| We will have to add more to the init::hints::* files if we want to eliminate dependence on $Config{ccflags} | |||
| plobsing | packfile PMCs don't fully initialize the packfile structure. rage. | 21:04 | |
| whiteknight | yay! awesomeness | 21:05 | |
| kid51: Adding more to hints is not a bad thing | 21:06 | ||
| kid51 | Hmm, I missed one instance of $(RANLIB) in config/gen/makefiles/root.in -- the one that plobsing was referring to re static library | ||
| whiteknight: But it unfortunately adds to maintenance burden for a given OS. | 21:07 | ||
| whiteknight | kid51: do the hints change often? I mean, if we dump them out of perl to start, and put those dumps into the hints files, is there going to be much ongoing maintenance? | ||
| kid51 | On the one hand, we want Parrot to run on a wide range of OSes. | ||
| Or, at least, some of us do ;-) Some only care about Linux. | 21:08 | ||
| So, as a consequence, we have hints files for multiple OSes. | |||
| bubaflub | whiteknight: my understanding of the hints suggest no, they do not change often | ||
| kid51 | But we don't have the *humans* to serve as maintainers/porters on many of those OSes. | ||
| plobsing wishes there were a cross-platform static database of this kind of information | 21:09 | ||
| kid51 | Once every few years, someone comes along who takes an interest in something like Cygwin or Msys (to cite some platforms currently getting some attention). | 21:10 | |
| plobsing is sick of autotools probing my fortran compiler (why?) for 5 minutes trying to configure a C library | |||
| kid51 | so we write hints files ... but then they go unmaintained | ||
| bubaflub | could we do something like have a hints file | 21:11 | |
| but have some of the automatic programs to fall back to in the event that we don't have the information? | |||
| whiteknight | all the more reason to dump out hints files now, if we have the need later, we can update them in response to bug reports | ||
| more important than any of that would be adding a "How to debug your build" FAQ somewhere easily accessible | |||
| kid51 | whiteknight: I think that's more difficult than you might think | ||
| Or, better, why is it the *hints* files you want dumped? Isn't the source code sufficient? | 21:12 | ||
| plobsing: Would ':' be a valid no-op in the DOS shell? | 21:22 | ||
| plobsing | kid51: I don't know. But it would be unlikely for someone to be using GNU ar from the DOS shell | 21:24 | |
| sorear | the DOS shell is completely unusable for anything at this level of sophistication. also, it's been EOLed for about a decade now. | ||
| CMD.EXE probably has something we can use | |||
| kid51 | Well, in any event, it appears that as long as we want that static build, we'll need a valid setting for ranlib, at least on Darwin: | ||
| blib/lib/libparrot.a | |||
| make: execvp: blib/lib/libparrot.a: Permission denied | |||
| make: *** [blib/lib/libparrot.a] Error 127 | |||
| benabik | IIRC, the equiv on Win32 is rem | 21:25 | |
| sorear | kid51: on darwin, : will definitely suffice. | ||
| plobsing | that sounds right, but what make system would invoke the DOS shell, but not require ranlib? | 21:26 | |
| that sounds like a frankenstein | |||
|
21:26
AzureSto_ joined
|
|||
| sorear | plobsing: djgpp | 21:26 | |
| maybe | |||
| sorear wonders if djgpp is still alive. | |||
| kid51 | sorear: I encountered multiple problems in the compiler_flags branch on Darwin, and I've been trying to rule one problem out at a time. | 21:27 | |
| plobsing | perhaps rather than looking for a cross-platform shell nop, we could simply force ar to not build the index and then use ranlib as usual | 21:28 | |
| kid51 | plobsing: I would welcome a parrot-dev post from you about the need for static library. | 21:29 | |
| dalek | op: 66640fd | Whiteknight++ | / (3 files): Implement BinaryExpr and MemberExpr, and add a new example file |
||
| op: a695e6a | Whiteknight++ | stage0/js/wast.js: Implement basic array and object literals |
|||
| op: e6bc46c | Whiteknight++ | examples/array_object_literal.js: +examples file for array and object literals |
|||
|
21:36
not_gerd joined
|
|||
| plobsing | kid51: my point about why are we building it does not excuse us from not supporting it | 21:36 | |
| not_gerd | *appears* | 21:37 | |
| plobsing | there are platforms that do not provide dynamic linking | ||
| if you are hoping on eliminating our dependancy on ranlib, this is not possible, if we are to support as many platforms as possible | |||
| not_gerd | as long as we're discussing the build system: has anyone ever tried to cross-compile Parrot? | 21:44 | |
| the current system does not differentiate between host and target at all... | |||
| benabik | not_gerd: I seem to recall there being some effort, but it failing due to trying to run the built miniparrot. | ||
| plobsing | not_gerd: there was a heruclean effort to get Parrot to run on RTEMS | 21:45 | |
| s/heruclean/herculean/ | |||
| benabik | Is the object returned by compreg supposed to follow some interface? | 21:48 | |
| Ah. PDD31 | 21:49 | ||
| not_gerd | did the RTEMS port re-use the existing build system or write its own from scratch? | 21:50 | |
| plobsing | I'm not sure | 21:52 | |
| kid51 goes back out into the hurricane | 21:53 | ||
| plobsing | I suspect it was heavily moded. I'm pretty sure our configure system doesn't separate probing from generating sufficiently. | ||
| bubaflub | not_gerd: i worked on getting Parrot to cross-compile last year | 22:04 | |
| not_gerd | bubaflub: worked on as in 'got it to work' or as in 'gave up in desperation' | 22:08 | |
| ? | 22:09 | ||
| cotto | nothing got merged (afair), which is a shame | 22:10 | |
| benabik | --setting=-p ? | 22:11 | |
| Wrong channel... | 22:12 | ||
| bubaflub | not_gerd: i ran out of time | ||
| not_gerd: so the later, i suppose | 22:13 | ||
| not_gerd: i still have my work, though it's not in an easily mergeable format | |||
|
22:13
rfw joined
|
|||
| not_gerd | bubaflub: did you extend or sidestep Parrot's build system? | 22:15 | |
| bubaflub | not_gerd: no, i attempted to patch it | ||
| not_gerd: which was a bad decision | |||
| not_gerd: i also tried to do two different things - get Parrot to cross compile and get Parrot to build out of directory | 22:16 | ||
| not_gerd: i think those can be separate efforts | 22:17 | ||
| dalek | rrot/soh-cah-toa/odius: 39b3618 | soh_cah_toa++ | / (3 files): Started new branch soh-cah-toa/odius for Odius debug format. |
||
| soh_cah_toa | whiteknight: i'm flying blind here on soh-cah-toa/odius. i need your help on where to start | 22:18 | |
| whiteknight: plus, the build fails on JSON.pir for some reason :\\ | |||
| not_gerd | during the build process, could one substitute another, already compiled, parrot for miniparrot? | 22:34 | |
| would it need to be of the same version? | |||
| not_gerd goes to sleep... | 23:16 | ||
| whiteknight | soh_cah_toa: let me look at what you have | 23:23 | |
| soh_cah_toa: looks like a good start. Methinks you aren't as blind as you claim to be | 23:24 | ||
| soh_cah_toa | yay \\o/ | 23:25 | |
| whiteknight | I'll throw together some more of these packfile functions | 23:30 | |
| soh_cah_toa | great | 23:31 | |
|
23:33
rfw joined,
logie joined
|
|||
| soh_cah_toa | msg dukeleto yo, where you been gangsta? i was wondering, what was the name of that gc algorithms book you mentioned on parrot-dev a while ago? | 23:35 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | rrot/soh-cah-toa/odius: dd97a71 | Whiteknight++ | / (2 files): Add in stub functions for the new odius segment, and add them to the registry |
23:57 | |
| soh_cah_toa | word | 23:58 | |
| whiteknight | word up | 23:59 | |