Camelia, the Perl 6 bug

IRC log for #parrot, 2011-08-28

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 NotFound How can I prevent the temporary executables created by c_output_is from deletion?
00:02 whiteknight there's a global variable you can set
00:02 whiteknight ack for POSTMORTEM
00:04 whiteknight <parrot git:whiteknight/6model> make bootstrap-ops
00:04 whiteknight ./ops2c --core --quiet
00:04 whiteknight Cannot repeat with negative arg
00:04 whiteknight current instr.: 'parrot;Ops;Emitter;_block1153' pc 64771 (compilers/opsc/gen/Ops/Compiler/Grammar.pir:4098) (compilers/opsc/src/Ops/Emitter.pm:150)
00:04 whiteknight awesome
00:05 NotFound Amazing, infinite recursion in Default
00:06 cotto You have to be special to get that error.
00:07 NotFound As expected, it comes from 6model initialization.
00:08 cotto whiteknight, how much of a plan do you have for bringing 6model into core?
00:08 whiteknight cotto: what do you mean?
00:08 cotto whiteknight, how are you going to start integrating it?
00:09 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:10 whiteknight after that, we pick fruit as we find it
00:10 NotFound whiteknight: of course, the culprit is a static var.
00:11 NotFound static PMC *scs = NULL;
00:11 whiteknight awesome
00:11 whiteknight I haven't really looked at it yet
00:11 cotto the 6model code has a lot of those
00:11 whiteknight some of the code moving was sloppy and fast
00:11 NotFound Wich isn't NULL no more at the second initialization.
00:11 cotto I wonder if we'd be better off porting instead of copy/pasting.
00:12 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
00:13 cotto s/porting/reimplementing/
00:13 NotFound The comments at the start of src/6model/serialization_context.c are discouraging
00:13 kid51 joined #parrot
00:13 * kid51 gets back in from a pleasant drive in a hurricane
00:13 kid51 Is there any way we could eliminate these 3 warnings during 'make'?
00:13 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
00:13 kid51 396:src/platform/generic/io.c:203: warning: no previous prototype for 'Parrot_io_async'
00:13 kid51 460:src/pmc/filehandle.c:1200: warning: implicit declaration of function 'Parrot_io_async'
00:13 kid51 461:src/pmc/filehandle.c:1200: warning: nested extern declaration of 'Parrot_io_async'
00:14 kid51 (from 'master' a few commits back)
00:14 NotFound kid51: yes, git pull
00:14 kid51 Have you committed to master in last hour?
00:14 NotFound kid51: no, a few hours ago
00:16 kid51 Thx, I'll try on my next test in master
00:16 whiteknight FFFFUUUUUU
00:17 whiteknight here's the line that's failing: my $space := pir::repeat__SsI(' ', 30 - pir::length__Is($op.full_name));
00:17 whiteknight and the op name that's tripping it up: repr_is_attr_initialized_i_p_p_s
00:17 whiteknight 32 characters long
00:17 whiteknight YAY! AWESOME CODE IS AWESOME
00:17 kid51 g++ build in 6model branch now failing only one test file
00:18 cotto maoilhalkjhgalkhalghad
00:18 cotto opsc can't handle the awesome
00:20 whiteknight I'm fixing it no
00:20 whiteknight now
00:21 cotto I bet it's a really complicated fix.
00:23 whiteknight OMG it does the same stupid thing in multiple places
00:23 whiteknight same thing. Same error
00:23 whiteknight line 150 and line 200
00:23 whiteknight I <3 this code
00:24 soh_cah_toa wow, i can not believe how clean and well commented this 6model code is
00:24 soh_cah_toa i might just be able to actually help out b/c everything is so clear
00:24 cotto soh_cah_toa, sarcasm?
00:24 soh_cah_toa no, not at all
00:24 soh_cah_toa it actually is
00:24 cotto good news then!
00:25 Tene Yeah, I really like 6model's code.
00:27 soh_cah_toa there ain't a thing in the world that makes me happier than looking at nice clean code ;)
00:29 soh_cah_toa 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:30 cotto Is a PMC a PMC if you call it an object?
00:30 whiteknight heresy
00:30 soh_cah_toa hm
00:32 cotto That's the part of the transition that makes me nervous, btw.  It'll need thought.
00:33 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:34 whiteknight the answer is : sortof
00:34 whiteknight I mean, we have an object model, but it's not one that a lot of thought has ever gone into
00:34 whiteknight we have Class and Object PMCs, etc
00:34 soh_cah_toa oh right
00:34 whiteknight and PMCProxy, the red-headed stepchild
00:35 cotto So important, yet so unknown.
00:38 dalek parrot/whiteknight/6model: 363813c | Whiteknight++ | / (7 files):
00:38 dalek parrot/whiteknight/6model: 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 dalek parrot/whiteknight/6model: review: https://github.com/parrot/parrot/commit/363813ccba
00:40 whiteknight hmmm... the build works again after a reconfig
00:40 whiteknight ops2c is such an amazing, wonderful, stable part of the process
00:41 whiteknight jnthn__: ping
00:43 whiteknight some parts of 6model we definitely will want to redo. Many of the ops, specifically
00:44 whiteknight 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:46 silug joined #parrot
00:51 Tene +1
01:04 dalek parrot/whiteknight/kill_threads: 386dae9 | Whiteknight++ | src/gc/gc_ (3 files):
01:04 dalek parrot/whiteknight/kill_threads: Remove some thread-related GC calls
01:04 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/386dae94fd
01:04 dalek parrot/whiteknight/kill_threads: 934ad0a | Whiteknight++ | MANIFEST (2 files):
01:04 dalek parrot/whiteknight/kill_threads: merge in cotto++'s changes. Fix conflicts
01:04 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/934ad0aa19
01:04 cotto I made changes?
01:05 soh_cah_toa seen dukeleto?
01:05 aloha dukeleto was last seen in #parrot 1 days 6 hours ago saying "atrodo: manhattan distance".
01:06 whiteknight cotto: yeah, you had a few commits the other day
01:06 whiteknight I  haven't dealt with them until now
01:07 Kulag joined #parrot
01:09 nopaste "kid51" at 192.168.1.3 pasted "whiteknight/6model branch: Only current failure on linux/i386 w/gcc build." (27 lines) at http://nopaste.snit.ch/75211
01:13 whiteknight oh right, we can murderlize the share_ro vtable too
01:22 whiteknight yay!
01:22 cotto I won't miss that.
01:36 dalek parrot/whiteknight/6model: 030df1a | jkeenan++ | src/ (5 files):
01:36 dalek parrot/whiteknight/6model: [codingstd] Break lines > 100 characters.
01:36 dalek parrot/whiteknight/6model: review: https://github.com/parrot/parrot/commit/030df1a548
01:43 whiteknight oh, we're going to love this
01:46 dalek parrot/whiteknight/kill_threads: 5ad98b9 | Whiteknight++ | src/ (11 files):
01:46 dalek parrot/whiteknight/kill_threads: Remove many references to thread-related functions. Remove share and share_ro vtables.
01:46 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/5ad98b92e4
01:46 dalek parrot/whiteknight/kill_threads: e972665 | Whiteknight++ | / (4 files):
01:46 dalek parrot/whiteknight/kill_threads: Remove references to remaining thread-related functions in the code. Parrot builds and passes most tests that aren't specifically for threading features
01:46 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/e97266593c
01:46 dalek parrot/whiteknight/kill_threads: 23eae59 | Whiteknight++ | / (13 files):
01:46 dalek parrot/whiteknight/kill_threads: remove atomic stuff: headers, source files, and tests
01:46 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/23eae598f5
01:46 whiteknight it's like a weight being lifted
01:49 dalek parrot/whiteknight/kill_threads: 15a2e3d | Whiteknight++ | t/src/extend_vtable.t:
01:49 dalek parrot/whiteknight/kill_threads: fix numbering for extend_vtable.t
01:49 dalek parrot/whiteknight/kill_threads: review: https://github.com/parrot/parrot/commit/15a2e3d40a
01:49 whiteknight okay, I think that is enough work for one day
01:50 whiteknight by the end of this weekend, we could have 6model AND no more threads
01:50 whiteknight it's fun to think about
01:51 bubaflub whiteknight++
01:53 cotto fsvo "having 6model"
01:53 cotto where having != using
01:53 cotto but it's an important step
02:04 kid51_ joined #parrot
02:21 Coke joined #parrot
02:25 preflex joined #parrot
03:09 soh_cah_toa kid51: what are you doing online? i thought brooklyn was being evacuated?
03:12 jsut joined #parrot
03:45 dalek parrot/whiteknight/6model: f0b5c16 | jkeenan++ | src/6model/ (2 files):
03:45 dalek parrot/whiteknight/6model: [codingstd] Add ASSERT_ARGS.
03:45 dalek parrot/whiteknight/6model: review: https://github.com/parrot/parrot/commit/f0b5c160cc
03:45 dalek parrot/whiteknight/6model: aa2eed9 | jkeenan++ | src/6model/repr (3 files):
03:45 dalek parrot/whiteknight/6model: [codingstd] Add ASSERT_ARGS.
03:45 dalek parrot/whiteknight/6model: review: https://github.com/parrot/parrot/commit/aa2eed919f
03:45 dalek parrot/whiteknight/6model: 656728f | jkeenan++ | src/ (7 files):
03:45 dalek parrot/whiteknight/6model: [codingstd] Add ASSERT_ARGS.
03:45 dalek parrot/whiteknight/6model: review: https://github.com/parrot/parrot/commit/656728fe94
03:45 dalek parrot/whiteknight/6model: 230f5ef | jkeenan++ | src/6model/reprs/ (2 files):
03:45 dalek parrot/whiteknight/6model: [codingstd] Add ASSERT_ARGS.
03:45 dalek parrot/whiteknight/6model: review: https://github.com/parrot/parrot/commit/230f5ef32e
03:45 kid51 soh_cah_toa: Brooklyn is a big place!
03:46 kid51 2.5 million people
03:46 kid51 Where would we all go?
03:46 soh_cah_toa i thought there were state-supported shelters?
03:46 kid51 I actually went for a drive down to Brighton Beach at 7:00 pm!
03:47 kid51 "State-supported shelters"  Hah!
03:47 soh_cah_toa i know, i know
03:47 kid51 Those would house 10K people at most.
03:47 soh_cah_toa i'd hate to live in a shelter too but i'd also hate to die in a hurricane
03:47 kid51 The rain didn't get really heavy until I was out in my car
03:48 kid51 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:49 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:50 nopaste "kid51" at 192.168.1.3 pasted "whiteknight/6model branch: warnings during gcc build" (35 lines) at http://nopaste.snit.ch/75266
03:51 kid51 Perhaps you can name our next release after this hurricane.
03:51 kid51 time for bed
03:51 soh_cah_toa oh, not a bad idea
03:51 soh_cah_toa see ya :)
04:02 benabik IIRC, they evacuated something like 300k out of 8.2M in New York City.
04:02 soh_cah_toa oh, not everybody. ok
04:03 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 #parrot
04:15 plobsing_ benabik: did you wind up solving the issues you were having with testing select?
04:15 lateau joined #parrot
04:16 benabik plobsing_: The third fdset is really platform dependent, I think.
04:17 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.
04:17 benabik plobsing_: Although harder to test.
04:18 lateau left #parrot
04:18 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:19 benabik select is only available on Windows for sockets.
04:20 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:21 plobsing_ 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 #parrot
04:32 plobsing_ yeah, I'm not sure why it is doing that
04:33 cotto socket.pmc seems to be a moderately well-tested thing
04:35 plobsing_ tests appear to exist, so I'm going to assume that our testsuite creates sockets
04:36 cotto That sounds safe.  I wouldn't assume too much more.
04:36 redicaps joined #parrot
04:43 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--
04:45 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 plobsing_ about half a page up in the same manpage from the bit about setting the error flag for normal files
04:49 cotto plobsing_, ...
04:50 cotto That's a gem.
04:53 plobsing_ posix me harder baby!
04:58 Khisanth joined #parrot
05:16 Khisanth joined #parrot
05:52 nbrown joined #parrot
05:54 dalek rakudo/nom: 1848338 | moritz++ | / (4 files):
05:54 dalek rakudo/nom: change names of backtrace classes to match spec
05:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1848338658
06:34 fperrad joined #parrot
06:58 JimmyZ joined #parrot
07:15 cotto joined #parrot
07:53 dodathome joined #parrot
07:56 Khisanth joined #parrot
08:13 mj41 joined #parrot
08:55 Eclesia joined #parrot
08:55 Eclesia hi
09:46 whiteknight joined #parrot
09:57 JimmyZ good morning, whiteknight
10:13 whiteknight hello JimmyZ
10:18 Eclesia question : how do I get the call of an exception pmc ?
10:18 Eclesia call stack*
10:26 Khisanth joined #parrot
10:28 whiteknight e.backtrace returns an array of hashes with data. e.backtrace_strings returns pre-formatted strings for the backtrace
10:29 whiteknight e.backtrace() and e.backtrace_strings() are methods
10:30 Eclesia whiteknight: thanks
10:31 mtk joined #parrot
10:32 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:42 Khisanth joined #parrot
10:43 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 ?
10:43 whiteknight it returns an array of strings with \n in them
10:43 whiteknight each string is the backtrace of a throw or rethrow
10:49 Eclesia whiteknight: the stack do not contain the last instruction. it's normal ?
10:50 Eclesia Null PMC access in get_integer()
10:50 Eclesia current instr.: 'parrot;em;eriaparser;v0;syntaxsuga...
10:50 Eclesia called from Sub 'parrot;em;eriaparser;v0;Pa ...
10:50 Eclesia called from Sub 'parrot;em;eriaparser;v0;Pa...
10:51 Eclesia the current instr in not in the text
11:10 jsut joined #parrot
11:18 whiteknight hmm, that seems like a bug
11:28 nopaste "Eclesia" at 192.168.1.3 pasted "exception output difference" (39 lines) at http://nopaste.snit.ch/75474
11:29 Eclesia whiteknight: here are the difference . it's like if the exception stack was not freezed. akward
11:30 Eclesia the first element in the stack is the problem :
11:30 Eclesia 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)
11:31 Eclesia 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 Eclesia they don't point to the same file and line.
12:01 whiteknight Okay, it's the same number of frames, but the top frame has the wrong information?
12:09 ambs joined #parrot
12:14 Khisanth joined #parrot
13:52 nbrown joined #parrot
15:15 mj41 joined #parrot
15:43 mj41 joined #parrot
17:02 kid51 joined #parrot
17:02 dalek parrot: c22297f | jkeenan++ | config/init/defaults.pm:
17:02 dalek parrot: Eliminate needlessly duplicated option listing. nwellnhof++.
17:02 dalek parrot: review: https://github.com/parrot/parrot/commit/c22297f36c
17:19 wknight8111 joined #parrot
17:27 dalek jsop: 936eefc | Whiteknight++ | / (7 files):
17:27 dalek jsop: 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 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/936eefc980
17:27 dalek jsop: 528a285 | Whiteknight++ | / (2 files):
17:27 dalek jsop: Fix makefile so we can build stage0
17:27 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/528a285fc8
17:27 dalek jsop: 3bd2666 | Whiteknight++ | / (5 files):
17:27 dalek jsop: Add in a new Winxed AST stage (WAST). Start implementing translations from jison ast to wast. Add in a new frontend for testing
17:27 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/3bd2666839
17:32 cotto joined #parrot
17:33 dukeleto whiteknight++ # jsop
17:33 dalek jsop: fdc01b5 | Whiteknight++ | README:
17:33 dalek jsop: +README
17:33 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/fdc01b5e37
17:34 dukeleto whiteknight: i was about to ask for a README, and one appears!
17:34 whiteknight it's like magic
17:35 whiteknight 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:37 whiteknight I think that with some basic ast transformations and slightly modified codegen, we can create winxed from javascript
17:38 whiteknight then, if we have a suitable object model, a working runtime, and pcre bindings, we should be able to bootstrap
17:39 Tene and if we also had a waffle iron, we could make breakfast.
17:40 whiteknight any approach is going to be tricky, this just seemed like a relatively easy one
17:40 cotto ~~
17:40 whiteknight winxed is much closer to JS than PIR is, for instance, so the stage 1 codegens can be simplified
17:40 kid51_ joined #parrot
17:42 whiteknight plus we don't have to deal with things like reordering expressions, allocating registers, etc
17:43 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
17:44 whiteknight all that needs to contain is the handful of types and methods that stage1 uses
18:00 dalek Heuristic branch merge: pushed 1500 commits to parrot/nwellnhof/compiler_flags by jkeenan
18:08 cotto aloha, kid51 is also the branchomancer
18:08 aloha cotto: Okay.
18:24 soh_cah_toa joined #parrot
18:26 contingencyplan joined #parrot
18:53 dalek jsop: a1e3580 | Whiteknight++ | / (3 files):
18:53 dalek jsop: Flesh out a few nodes. We now generate some valid winxed for certain, trivial test programs
18:53 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/a1e35803c5
18:56 plobsing joined #parrot
19:09 lateau left #parrot
19:25 lucian joined #parrot
19:26 dalek tracwiki: v82 | cotto++ | ParrotQuotes
19:26 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=82&amp;action=diff
19:39 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
19:40 benabik 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.
19:51 whiteknight I'm excited about this approach
19:51 whiteknight I'm making pretty good progress, if i may say so myself
19:52 cotto You may.  Getting a trivial program working that quickly is impressive.
19:53 NotFound I've always hoped that winxed as target for code generators will be easy to use.
19:58 cotto NotFound++ # sneaky foresight
20:01 davidfetter joined #parrot
20:06 whiteknight I'm finishing up some basic expression types and I'll upload an example
20:06 whiteknight 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 #parrot
20:09 whiteknight unfortunately, new projects like this really demonstrate how uncreative I am with names
20:09 whiteknight jsop, and wast, etc
20:12 bubaflub whiteknight: are you using any of rohit's work?
20:12 dalek winxed: ef3364c | NotFound++ | t/basic/05new.t:
20:12 dalek winxed: test keyed new with var argument
20:12 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/ef3364c80a
20:13 whiteknight joined #parrot
20:18 perlite joined #parrot
20:20 tty234 joined #parrot
20:29 davidfetter joined #parrot
20:29 dalek parrot/no_ranlib: 238fad8 | jkeenan++ | config/ (3 files):
20:29 dalek parrot/no_ranlib: Create a branch to see if we can eliminate 'ranlib' from configuration.
20:29 dalek parrot/no_ranlib: review: https://github.com/parrot/parrot/commit/238fad893b
20:30 benabik ranlib?
20:30 * benabik reads the fine manpage.
20:30 plobsing benabik: builds index tables for static libs
20:31 plobsing but since we usually don't use static libs...
20:32 kid51 I'm working on this nwellnhof/compiler_flags branch.
20:32 kid51 Am trying to see how much we can reduce differences between what happens now and what would happen if that branch were applied.
20:34 kid51 http://trac.parrot.org/parrot/ticket/1044
20:38 Kulag joined #parrot
20:42 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 kid51 ranlib blib/lib/libparrot.a
20:42 kid51 But that line is not present in build logs on Linux.
20:43 plobsing why do we build a static library by default?
20:44 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
20:44 kid51 plobsing: I don't know ... but then I don't understand much about static vs dynamic libraries
20:45 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
20:45 plobsing sorear: this may be true, but the fact is that 90% (or more) of people link dynamically
20:45 sorear kid51: except OSX doesn't use GNU ar
20:45 dalek jsop: f603688 | Whiteknight++ | stage0/js/ (2 files):
20:45 dalek jsop: 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
20:45 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/f60368888f
20:45 dalek jsop: 691f901 | Whiteknight++ | examples/func_call.js:
20:45 dalek jsop: Add in an examples directory, which will include files we successfully parse. I'll add more stuff there as we get it implemented
20:45 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/691f901a98
20:45 dalek jsop: c233a78 | Whiteknight++ | / (3 files):
20:45 dalek jsop: Implement CallExpr and add an example file that parses correctly
20:45 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/c233a787c7
20:46 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
20:46 kid51 sorear: Then what does it use?  I also see a line beginning with 'ar' in my Darwin build logs
20:46 sorear s/are/seem to be/
20:46 sorear kid51: I guess BSD ar, which I don't know much about
20:46 sorear plobsing: never heard of it.
20:47 sorear 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:
20:47 kid51 ar cr blib/lib/libparrot.a  src/string/api.o src/ops/core_ops.o ... [long list of object files]
20:48 soh_cah_toa sorear: what does niecza mean, btw?
20:48 sorear heh heh heh, blib
20:48 sorear soh_cah_toa: it's mangled Czech for a lack of time.
20:48 sorear badly mangled.
20:49 soh_cah_toa interesting
20:49 kid51 I have a BSD 'ar' and I have a 'ranlib' which is part of Apple's libtools
20:50 sorear ar is actually a general-purpose archiver, like "tar"; it doesn't have builtin knowledge of the .o file format
20:50 mj41 joined #parrot
20:50 plobsing debian .deb files are ar archives IIRC
20:50 sorear yes
20:51 plobsing 'are ar archives' alliteration unintended
20:51 sorear ranlib creates an index file containing data like "Parrot_find_method_with_cache => oo.o"
20:52 sorear (not actually a text file IIRC, and certainly not in that format)
20:52 sorear the GNU folks are a bit less sold on separation of concerns, and tend to combine related tools
20:53 sorear GNU ar automatically generates the index file (and as such, contains a .o parser)
20:54 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:55 sorear kid51: how can 'make' find it?
20:55 kid51 I suspect it's actually the C compiler that's finding it.
20:56 plobsing kid51: the C compiler isn't doing it
20:56 plobsing search the Makefile for 'RANLIB'
20:57 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
20:58 plobsing 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.
20:59 kid51 I'm wondering why nwellnhof chose ':' as a hard-coded setting for ranlinb in init::defaults in his branch.
21:00 plobsing kid51: ':' is a nop shell command
21:00 kid51 Can you explain that a bit?
21:01 plobsing ': foo bar baz', when sent to the shell, will do nothing (fsvo nothing), without complaining
21:01 dalek jsop: 8292856 | Whiteknight++ | stage0/js/wast.js:
21:01 dalek jsop: trivial fix. Don't put parens around the invocant if it's a basic literal
21:01 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/8292856561
21:01 dalek jsop: 267af0d | Whiteknight++ | / (3 files):
21:01 dalek jsop: Implement NewExpr handling. Add an example
21:01 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/267af0de4f
21:01 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*
21:02 plobsing so we need to call something, but do nothing, which is what ':' is for
21:02 kid51 Okay.
21:02 kid51 So the point of TT #1744 was to reduce our dependence on Perl 5's ccflags setting. ...
21:03 kid51 ... But I think that many of nwellnhof's choices are too Linux-centric.
21:03 kid51 We will have to add more to the init::hints::* files if we want to eliminate dependence on $Config{ccflags}
21:04 plobsing packfile PMCs don't fully initialize the packfile structure. rage.
21:05 whiteknight yay! awesomeness
21:06 whiteknight 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
21:07 kid51 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?
21:07 kid51 On the one hand, we want Parrot to run on a wide range of OSes.
21:08 kid51 Or, at least, some of us do ;-)  Some only care about Linux.
21:08 kid51 So, as a consequence, we have hints files for multiple OSes.
21:08 bubaflub whiteknight: my understanding of the hints suggest no, they do not change often
21:08 kid51 But we don't have the *humans* to serve as maintainers/porters on many of those OSes.
21:09 * plobsing wishes there were a cross-platform static database of this kind of information
21:10 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
21:10 kid51 so we write hints files ... but then they go unmaintained
21:11 bubaflub could we do something like have a hints file
21:11 bubaflub but have some of the automatic programs to fall back to in the event that we don't have the information?
21:11 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
21:11 whiteknight more important than any of that would be adding a "How to debug your build" FAQ somewhere easily accessible
21:11 kid51 whiteknight: I think that's more difficult than you might think
21:12 kid51 Or, better, why is it the *hints* files you want dumped?  Isn't the source code sufficient?
21:22 kid51 plobsing: Would ':' be a valid no-op in the DOS shell?
21:24 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.
21:24 sorear CMD.EXE probably has something we can use
21:24 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:
21:24 kid51 blib/lib/libparrot.a
21:24 kid51 make: execvp: blib/lib/libparrot.a: Permission denied
21:24 kid51 make: *** [blib/lib/libparrot.a] Error 127
21:25 benabik IIRC, the equiv on Win32 is rem
21:25 sorear kid51: on darwin, : will definitely suffice.
21:26 plobsing that sounds right, but what make system would invoke the DOS shell, but not require ranlib?
21:26 plobsing that sounds like a frankenstein
21:26 AzureSto_ joined #parrot
21:26 sorear plobsing: djgpp
21:26 sorear maybe
21:26 * sorear wonders if djgpp is still alive.
21:27 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:28 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:29 kid51 plobsing: I would welcome a parrot-dev post from you about the need for static library.
21:29 dalek jsop: 66640fd | Whiteknight++ | / (3 files):
21:29 dalek jsop: Implement BinaryExpr and MemberExpr, and add a new example file
21:29 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/66640fd47c
21:29 dalek jsop: a695e6a | Whiteknight++ | stage0/js/wast.js:
21:29 dalek jsop: Implement basic array and object literals
21:30 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/a695e6a94c
21:30 dalek jsop: e6bc46c | Whiteknight++ | examples/array_object_literal.js:
21:30 dalek jsop: +examples file for array and object literals
21:30 dalek jsop: review: https://github.com/Whitekni​ght/jsop/commit/e6bc46cbe6
21:36 not_gerd joined #parrot
21:36 plobsing kid51: my point about why are we building it does not excuse us from not supporting it
21:37 not_gerd *appears*
21:37 plobsing there are platforms that do not provide dynamic linking
21:37 plobsing if you are hoping on eliminating our dependancy on ranlib, this is not possible, if we are to support as many platforms as possible
21:44 not_gerd as long as we're discussing the build system: has anyone ever tried to cross-compile Parrot?
21:44 not_gerd the current system does not differentiate between host and target at all...
21:44 benabik not_gerd: I seem to recall there being some effort, but it failing due to trying to run the built miniparrot.
21:45 plobsing not_gerd: there was a heruclean effort to get Parrot to run on RTEMS
21:45 plobsing s/heruclean/herculean/
21:48 benabik Is the object returned by compreg supposed to follow some interface?
21:49 benabik Ah.  PDD31
21:50 not_gerd did the RTEMS port re-use the existing build system or write its own from scratch?
21:52 plobsing I'm not sure
21:53 * 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.
22:04 bubaflub not_gerd: i worked on getting Parrot to cross-compile last year
22:08 not_gerd bubaflub: worked on as in 'got it to work' or as in 'gave up in desperation'
22:09 not_gerd ?
22:10 cotto nothing got merged (afair), which is a shame
22:11 benabik --setting=-p ?
22:12 benabik Wrong channel...
22:12 bubaflub not_gerd: i ran out of time
22:13 bubaflub not_gerd: so the later, i suppose
22:13 bubaflub not_gerd: i still have my work, though it's not in an easily mergeable format
22:13 rfw joined #parrot
22:15 not_gerd bubaflub: did you extend or sidestep Parrot's build system?
22:15 bubaflub not_gerd: no, i attempted to patch it
22:15 bubaflub not_gerd: which was a bad decision
22:16 bubaflub not_gerd: i also tried to do two different things - get Parrot to cross compile and get Parrot to build out of directory
22:17 bubaflub not_gerd: i think those can be separate efforts
22:17 dalek parrot/soh-cah-toa/odius: 39b3618 | soh_cah_toa++ | / (3 files):
22:17 dalek parrot/soh-cah-toa/odius: Started new branch soh-cah-toa/odius for Odius debug format.
22:17 dalek parrot/soh-cah-toa/odius: review: https://github.com/parrot/parrot/commit/39b36181f2
22:18 soh_cah_toa whiteknight: i'm flying blind here on soh-cah-toa/odius. i need your help on where to start
22:18 soh_cah_toa whiteknight: plus, the build fails on JSON.pir for some reason :\
22:34 not_gerd during the build process, could one substitute another, already compiled, parrot for miniparrot?
22:34 not_gerd would it need to be of the same version?
23:16 * not_gerd goes to sleep...
23:23 whiteknight soh_cah_toa: let me look at what you have
23:24 whiteknight soh_cah_toa: looks like a good start. Methinks you aren't as blind as you claim to be
23:25 soh_cah_toa yay \o/
23:30 whiteknight I'll throw together some more of these packfile functions
23:31 soh_cah_toa great
23:33 rfw joined #parrot
23:33 logie joined #parrot
23:35 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.
23:57 dalek parrot/soh-cah-toa/odius: dd97a71 | Whiteknight++ | / (2 files):
23:57 dalek parrot/soh-cah-toa/odius: Add in stub functions for the new odius segment, and add them to the registry
23:57 dalek parrot/soh-cah-toa/odius: review: https://github.com/parrot/parrot/commit/dd97a71ce7
23:58 soh_cah_toa word
23:59 whiteknight word up

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced